在django教程的第二部分编写im代码时,我遇到了这个错误,我不知道为什么,我有和网站相同的代码。
Django 1.8.3
ERRORS:
<class 'polls.admin.ChoiceInline'>: (admin.E202) 'polls.Choice' has no ForeignKey to 'polls.Choice'.
System check identified 1 issue (0 silenced).我的models.py
import datetime
from django.db import models
from django.utils import timezone
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
question = models.ForeignKey(Question)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text我的admin.py
from django.contrib import admin
from .models import Choice, Question
class ChoiceInline(admin.StackedInline):
model = Choice
extra = 3
class QuestionAdmin(admin.ModelAdmin):
fieldsets = [
(None,{'fields': ['question_text']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
inlines = [ChoiceInline]
admin.site.register(Choice, ChoiceInline)
admin.site.register(Question, QuestionAdmin)我真的会精确的帮助,我真的不知道是什么问题,并想完成本教程。
发布于 2015-08-21 15:42:37
ChoiceInline已经包含在您的QuestionAdmin中,方法是
inlines = [ChoiceInline]。
这意味着当您编辑一个问题时,您将能够同时添加、编辑和删除该问题的选项。
因为这一行,您得到了错误:
admin.site.register(Choice, ChoiceInline)这是无效的,因为您不能向Inline注册模型。您只能向ModelAdmin类注册模型。要停止错误,只需从代码中删除这一行。
如果您想自己编辑选择,您需要定义一个ChoiceAdmin类并注册它。
admin.site.register(Choice, ChoiceAdmin)或者,如果您不需要任何定制,您实际上不需要一个模型管理员。
admin.site.register(Choice)https://stackoverflow.com/questions/32144288
复制相似问题