Администратор django выдает предупреждение "Поле 'X' не имеет значения по умолчанию" - PullRequest
5 голосов
/ 02 января 2011

Я создал две модели из существующей устаревшей БД, одну для статей и одну для тегов, которые можно связать со статьями:

class Article(models.Model):
    article_id = models.AutoField(primary_key=True)
    text = models.CharField(max_length=400)
    class Meta:
        db_table = u'articles'
class Tag(models.Model):
    tag_id = models.AutoField(primary_key=True)
    tag = models.CharField(max_length=20)
    article=models.ForeignKey(Article)
    class Meta:
        db_table = u'article_tags'

Я хочу разрешить добавление тегов для статьи от администратораинтерфейс, так что мой admin.py файл выглядит так:

from models import Article,Tag
from django.contrib import admin
class TagInline(admin.StackedInline):
    model = Tag


class ArticleAdmin(admin.ModelAdmin):

    inlines = [TagInline]

admin.site.register(Article,ArticleAdmin)

Интерфейс выглядит нормально, но когда я пытаюсь сохранить, я получаю: Warning at /admin/webserver/article/382/ Field 'tag_id' doesn't have a default value

Ответы [ 2 ]

4 голосов
/ 11 января 2012

Это также может произойти, если в вашей базе данных есть неиспользуемое поле, которое не поддерживает NULL.

2 голосов
/ 04 января 2011

Проблема заключалась в том, что в БД tag_id не было установлено в качестве поля автоинкремента.

...