我有一个 django 模型,命名Event
为 的通用内联关系Relationship
,如下所示:
# models.py
class Person(models.Model):
...
class Role(models.Model):
...
class Event(models.Model):
...
class Relationship(models.Model):
person = models.ForeignKey(Person)
role = models.ForeignKey(Role)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey("content_type", "object_id")
# admin.py
class RelationshipInline(generic.GenericTabularInline):
model = Relationship
extra = 0
class EventAdmin(admin.ModelAdmin):
inlines = [RelationshipInline]
我想找到一种方法来编辑内联,不仅可以从事件管理页面,还可以从人员管理页面。到目前为止,我已经添加了以下代码来在人员页面中显示内联
class ReverseRelationshipInline(admin.TabularInline):
model = Relationship
class IndividualAdmin(admin.ModelAdmin):
inlines = [ReverseRelationshipInline]
但是我得到了表单中content_type
的object_id
字段,对于管理员用户来说,它的信息量不是很大,因为它只是对主键的引用。我宁愿解决并显示content_object
(即使它不可编辑,也可以在列表中知道人们与哪些对象相关)。
有什么方向可以推荐吗?
谢谢。