Django says the "id may not be NULL" but why is it?
I'm going crazy today. I just tried to insert a new record and it threw back a "post_blogpost.id may not be NULL" error. Here's my model:
class BlogPost(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100)
who = models.ForeignKey(User, default=1)
when = models.DateTimeField()
intro = models.TextField(blank=True, null=True)
content = models.TextField(blank=True, null=True)
counter = models.PositiveIntegerField(default=0)
published = models.BooleanField(default=False)
css = models.TextField(blank=True, null=True)
class Meta:
ordering = ('-when', 'id')
There are a number of functions beneath the model too but I won't开发者_JAVA百科 include them in full here. Their names are: content_cache_key
, clear_cache
, __unicode__
, reads
, read
, processed_content
.
I'm adding through the admin... And I'm running out of hair.
The only thing I can think of is that the table schema has become desynchronized from the model in that someone removed the AUTOINCREMENT
attribute from the PK of the table.
I've also experienced odd editing results in the admin. Usually they were related to foreign keys. When the edit page has a bunch of empty model instances on one page so that you can easily create new ones by filling them out, sometimes I managed to do something wrong such that an attempt would be made to save the empty instances. Maybe that applies for you.
You could verify that this adds fine by itself in a shell.
$ python manage.py shell
>>> from models import *
>>> b = BlogPost(title='Hello', slug='hello')
>>> b.save()
精彩评论