Opened 17 years ago
Closed 17 years ago
#9558 closed (invalid)
datetime blank=True
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | Uncategorized | Version: | 1.0 |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
In a model, having a DateTimeField with blank = True, I get an error when leaving the value blank on saving.
My model is, simplified:
class Place(models.Model):
name = models.CharField(max_length=100)
class Event(models.Model):
user = models.ForeignKey(User)
place = models.ForeignKey(Place, blank=True)
starttime = models.DateTimeField(blank=True)
class EventForm(forms.ModelForm):
class Meta:
model = Event
exclude = ['owner']
def edit_event(request, event_id=False):
userid = request.session['loggedinas']
if request.POST:
event = EventForm(request.POST)
if event.is_valid():
cleaned_data = event.cleaned_data
event = Event( user_id = userid )
fields = ['name', 'description', 'starttime', 'endtime', 'photo', 'file']
for fieldname in fields:
setattr( event, fieldname, cleaned_data[fieldname])
return HttpResponseRedirect('/success')
...
Change History (3)
comment:1 by , 17 years ago
| Description: | modified (diff) |
|---|
comment:2 by , 17 years ago
The error is:
Exception Value: null value in column "starttime" violates not-null constraint
Environment:
Request Method: POST
Request URL: http://localhost:8000/edit_event/
Django Version: 1.0-final-SVN-unknown
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'peoplecode.adresbeheer',
'peoplecode.almanac',
'peoplecode.event',
'peoplecode.fields',
'peoplecode.friends',
'peoplecode.general',
'peoplecode.people',
'peoplecode.selectionfield']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware')
Traceback:
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py" in get_response
86. response = callback(request, *callback_args, **callback_kwargs)
File "/home/wim/peoplecode/../peoplecode/decorators.py" in wrapper
11. return func(request, *args, **kwargs)
File "/home/wim/peoplecode/../peoplecode/event/views.py" in edit_event
45. EventManager().set(event.cleaned_data, place_id, ownerid, event_id)
File "/home/wim/peoplecode/event/models.py" in set
71. event.save()
File "/usr/lib/python2.5/site-packages/django/db/models/base.py" in save
307. self.save_base(force_insert=force_insert, force_update=force_update)
File "/usr/lib/python2.5/site-packages/django/db/models/base.py" in save_base
379. result = manager._insert(values, return_id=update_pk)
File "/usr/lib/python2.5/site-packages/django/db/models/manager.py" in _insert
138. return insert_query(self.model, values, **kwargs)
File "/usr/lib/python2.5/site-packages/django/db/models/query.py" in insert_query
888. return query.execute_sql(return_id)
File "/usr/lib/python2.5/site-packages/django/db/models/sql/subqueries.py" in execute_sql
308. cursor = super(InsertQuery, self).execute_sql(None)
File "/usr/lib/python2.5/site-packages/django/db/models/sql/query.py" in execute_sql
1700. cursor.execute(sql, params)
File "/usr/lib/python2.5/site-packages/django/db/backends/util.py" in execute
19. return self.cursor.execute(sql, params)
Exception Type: IntegrityError at /edit_event/
Exception Value: null value in column "starttime" violates not-null constraint
comment:3 by , 17 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
You need null=True as well as blank=True so the database will allow null values for that column (see http://docs.djangoproject.com/en/dev/ref/models/fields/#null). Since the table has been created with the wrong constraint, at this point you will need to either modify it manually or manage.py reset the app.
Reformatted description. Please use preview before posting. Also, it would be ever so much more helpful if you'd specify what exact error you get. Why leave us guessing with the vague "an error"?