我正在关注Django民意调查教程,我只是改变了一些模型:https://docs.djangoproject.com/en/1.5/intro/tutorial02/
我想知道为什么当我添加/编辑/更换药丸时,我的警报不会显示在管理界面中。管理员仅显示编辑名称,而不是相关的警报对象。 根据教程,它应该显示为内联。
admin.py:
from django.contrib import admin
from pills.models import Alarm,Pill
class AlarmInline(admin.TabularInline):
model = Alarm
extra = 3
class PillAdmin(admin.ModelAdmin):
fieldsets = [
('Drug information', {'fields': ['name']}),
]
inlines = [AlarmInline]
list_display = ('name')
admin.site.register(Pill, PillAdmin)
models.py
from django.db import models
class Pill(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class Alarm(models.Model):
pill = models.ForeignKey(Pill)
time = models.DateTimeField('Alarm time')
def __unicode__(self):
return self.time.strftime('%c')
我所有的模特都验证了。我尝试重建数据库等... 有什么想法吗?
答案 0 :(得分:0)
如果你正确地复制了上面的代码,问题就在于你的缩进。
应该是:
class PillAdmin(admin.ModelAdmin):
fieldsets = [
('Drug information', {'fields': ['name']}),
]
inlines = [AlarmInline]
list_display = ('name')
inlines
是admin类的一个属性 - 它和list_display
需要是类定义的一部分,而不是模块级别的语句。