Джанго говорит, что «id не может быть NULL», но почему? - PullRequest
3 голосов
/ 29 марта 2010

Я схожу с ума сегодня. Я просто попытался вставить новую запись, и она выдавала ошибку «post_blogpost.id может быть не NULL». Вот моя модель:

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')

Под моделью также есть ряд функций, но я не буду здесь их полностью включать. Их имена: content_cache_key, clear_cache, __unicode__, reads, read, processed_content.

Я добавляю через админа ... И у меня кончаются волосы.

Ответы [ 2 ]

6 голосов
/ 29 марта 2010

Единственное, о чем я могу думать, это то, что схема таблицы стала десинхронизированной из модели, когда кто-то удалил атрибут AUTOINCREMENT из PK таблицы.

1 голос
/ 29 марта 2010

Я также испытал странные результаты редактирования в администраторе. Обычно они были связаны с внешними ключами. Когда на странице редактирования есть куча пустых экземпляров модели на одной странице, чтобы вы могли легко создавать новые, заполнив их, иногда мне удавалось сделать что-то не так, чтобы была попытка сохранить пустые экземпляры. Может быть, это относится к вам.

Вы можете убедиться, что это добавляет штраф в оболочке.

$ python manage.py shell
>>> from models import *
>>> b = BlogPost(title='Hello', slug='hello')
>>> b.save()
...