django admin 使用 TabularInline 失败

django admin fails using TabularInline

我构建了一个简单的 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' has no ForeignKey to 'addressbook.Note'.

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

我认为您不需要单独注册 NoteInline 管理模板。只需注册 PersonAdmin 模板,其中应包含您的 NoteInline