0

我正在关注 Django Poll 教程,我只是稍微更改了模型:https ://docs.djangoproject.com/en/1.5/intro/tutorial02/

我想知道为什么当我添加/编辑/更改药丸时我的警报没有显示在管理界面中。管理员只显示编辑名称,而不是相关的警报对象。根据教程,它应该显示内联。

管理员.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)

模型.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')

我所有的模型都验证了。我尝试重建数据库等...有什么想法吗?

4

1 回答 1

0

如果您正确地复制了上面的代码,那么问题是您的缩进。

它应该是:

class PillAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Drug information',               {'fields': ['name']}),
    ]
    inlines = [AlarmInline]
    list_display = ('name')

inlines是管理类的一个属性 - 它list_display需要成为类定义的一部分,而不是模块级别的语句。

于 2013-08-13T20:41:09.630 回答