django admin使用TabularInline失败

时间:2015-02-05 20:17:04

标签: python django django-admin

我构建了一个简单的django应用程序,现在有一个非常令人困惑的错误消息。我认为这是因为Tabularinline,但我根据to this documentation正确使用它。

models.py

from django.db import models
  class Person(models.Model):
    company = models.CharField(max_length=120)
    name = models.CharField(max_length=120)
    birthday = models.DateField(null=True, blank=True)

    def __unicode__(self):
        return self.name

  class Note(models.Model):
    person = models.ForeignKey(Person)
    datetime = models.DateTimeField()
    text = models.TextField()

admin.py

from addressbook.models import Person, Note
from django.contrib import admin


class NoteInline(admin.TabularInline):
    model = Note


class PersonAdmin(admin.ModelAdmin):
    model = Person
    inlines = [NoteInline, ]


admin.site.register(Note, NoteInline)
admin.site.register(Person, PersonAdmin)

但我总是收到此错误消息:

  

< class' addressbook.admin.NoteInline'>:(admin.E202)' addressbook.Note'没有ForeignKey到地址簿。注意'。

我会理解,但为什么要Note引用自己如果我在Person使用它?

1 个答案:

答案 0 :(得分:1)

我认为您不需要单独注册NoteInline管理员模板。只需注册PersonAdmin模板即可包含NoteInline