0

私は Django Poll チュートリアルに従っています。モデルを少し変更しただけです: 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')

すべてのモデルが検証されます。データベースなどを再構築してみました...アイデアはありますか?

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 に答える