我有两个基本模型:
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管理中,列表是不合逻辑的,因为每个compagny都有自己的地址。它应该更符合内联但限于一个元素。
基本上,我目前找到的唯一解决方案是:
class Company(models.Model):
street_address = models.CharField(max_length=200)
...
street_billing_address = models.CharField(max_length=200)
...
但是,这个解决方案的问题再一次是重复的代码...... :(
有任何解决方案吗?
答案 0 :(得分:0)
您可以使用两个内联,每个内联仅限于一个元素。例如:
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]