我在django中有一个帐户模型,其中包含Payment
的外键和Address
的onetoone。
在管理员的“帐户”部分,我可以编辑特定模型,并通过选择小部件编辑字段payment
和address
。但是,如何过滤选项以便仅显示相关模型。 (即不是每个用户的每个地址或付款,只有来自该用户的地址或付款)。
RelatedOnlyFieldListFilter
似乎只适用于模型列表视图。有没有办法在模型编辑视图中使用它?
答案 0 :(得分:0)
您可能正在寻找的是致电inlines。它允许您直接在父模型表单中编辑相关对象,在这种情况下,它将是Account
模型。以下是实施示例:
class Account(models.Model):
name = models.CharField(max_length=100)
class Payment(models.Model):
account= models.ForeignKey(Account, on_delete=models.CASCADE)
amount= models.CharField(max_length=100)
class Adress(models.Model):
account= models.OneToOneField(Account, on_delete=models.CASCADE)
adress= models.CharField(max_length=100):
class AccountAdmin(admin.ModelAdmin):
inlines = [
Paymentinline,
Adressinline,
]
请注意,这不是一个完整的实现(您需要构建两个内联),请按照内联文档获取更多信息,但上面是它的基础知识。