如何在Django管理对象页面中不显示外键列表?

2024-04-19 21:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个基本模型:

class Address(models.Model):
    ...

class Company(models.Model):
    address = models.ForeignKey(Address, related_name='address')
    billing_address = models.ForeignKey(Address, related_name='billing_address')

为了不重复代码,我为地址做了一个模型,因为有两个地址。你知道吗

从Django的角度来看,一切似乎都合乎逻辑。但在Django政府,列出一份名单是不合逻辑的,因为每个公司都有自己的地址。它应该更符合像内联的东西,但限于一个元素。你知道吗

所以基本上,我现在找到的唯一解决办法是:

class Company(models.Model):
    street_address = models.CharField(max_length=200)
    ...
    street_billing_address = models.CharField(max_length=200)
    ...

但是,这个解决方案的问题是重复的代码。。。:(

有什么解决办法吗?你知道吗


Tags: django代码name模型modeladdressmodels地址
1条回答
网友
1楼 · 发布于 2024-04-19 21:29:35

可以使用两个内联线,每个内联线仅限于一个元素。例如:

class AddressInline(admin.StackedInline):
    model = Address
    fk_name = "address"
    max_num = 1

class BillingAddressInline(admin.StackedInline):
    model = Address
    fk_name = "billing_address"
    max_num = 1


class CompanyAdmin(admin.ModelAdmin):
    # ...
    inlines = [AddressInline, BillingAddressInline]

相关问题 更多 >