Django:在管理接口中加入类
我有一个Person类和一个Contract类。在管理界面中,我想在进入person页面时显示与每个人相关的合同,而不仅仅是person类中的数据 那么,首先,我可以亲自展示合同中的数据吗 第二,我如何显示与此人相关的合同,而不是所有合同?我的意思是,我不想显示每个人的所有合同,只显示与特定人相关的合同 谢谢Django:在管理接口中加入类,django,Django,我有一个Person类和一个Contract类。在管理界面中,我想在进入person页面时显示与每个人相关的合同,而不仅仅是person类中的数据 那么,首先,我可以亲自展示合同中的数据吗 第二,我如何显示与此人相关的合同,而不是所有合同?我的意思是,我不想显示每个人的所有合同,只显示与特定人相关的合同 谢谢 class Person(models.Model): name = models.CharField(max_length=32, verbose_name=_(u"Name")
class Person(models.Model):
name = models.CharField(max_length=32, verbose_name=_(u"Name"))
surname = models.CharField(max_length=32, verbose_name=_(u"Surname"))
address = models.CharField(max_length=32, verbose_name=_(u"Address"))
class Contract(models.Model):
person = models.ForeignKey(Person) #person hired
contract = models.OneToOneField('self', blank = True, null = True) #allows to extend a contract
project = models.ForeignKey(Project, blank = True, null = True) #related project
您可以修改Django的管理行为,引入其他字段,还可以查询其他外部数据。官方文档(更具体地说是列表视图)完全涵盖了您的问题:如果您正在修改更改/添加表单上的关系,那么您正在寻找内联模型:您是否阅读了教程?它明确地向您展示了如何在管理中做到这一点(使用调查问题和答案的例子)。由于这是我的第一个Django项目,如果怀疑太容易,我很抱歉。我尝试了两种方法:在管理中:添加Person
contract\u属性的列表显示,这样似乎不起作用。在模型中:我插入了一个亲自调用合同属性的方法。但是我被困在这里,因为我找不到投票示例:(,滚动到关于内联线的部分。非常感谢你们。结果很简单,但一开始我不知道如何开始,我需要一个线索。class-constractnline(admin.tablarinline):model=Contract-extra=1@admin.register(Person)class Person(admin.ModelAdmin):列表\过滤器=[“…..”]列表\显示=[“…..”]内联线=[收缩线,]
class ContractInline(admin.TabularInline):
model = Contract
extra = 1
@admin.register(Person)
class Person(admin.ModelAdmin):
list_filter = ["........"]
list_display = ["........"]
inlines = [ ContractInline, ]