0
後,我有這樣的模式:Django管理 - 填充等領域不斷變化的外鍵
class Order(models.Model):
client = models.ForeignKey(
Client,
on_delete=models.CASCADE,
related_name='orders',
related_query_name='order',
)
delivery_country = CountryField('Kraj wysyłki', null=True, blank=True)
delivery_city = models.CharField('Miasto wysyłki', max_length=255, null=True, blank=True)
delivery_street = models.CharField('Ulica wysyłki', max_length=255, null=True, blank=True)
billing_country = CountryField('Kraj dla faktury', null=True, blank=True)
billing_city = models.CharField('Miasto dla faktury', max_length=255, null=True, blank=True)
billing_street = models.CharField('Ulica dla faktury', max_length=255, null=True, blank=True)
products = models.ManyToManyField(Product, through='OrderProduct')
class Client(models.Model):
name = models.CharField('Imię', max_length=255)
surname = models.CharField('Nazwisko', max_length=255)
country = CountryField('Kraj', null=True, blank=True)
city = models.CharField('Miasto', max_length=255, null=True, blank=True)
street = models.CharField('Ulica', max_length=255, null=True, blank=True)
而且我想實現這種行爲在Django管理: 的Order.client
的每一個變化之後,我想預填充其他領域像這樣:
Order.delivery_country = client.country
Order.delivery_city = client.city
Order.delivery_street = client.street
Order.billing_country = client.country
Order.billing_city = client.city
Order.billing_street = client.street
是否有任何包/插件來實現這一目標? 或者,你可能有一些想法,我怎麼能做到這一點?
如果訂單的細節是客戶的字面上的細節,爲什麼你會儲存數據的順序呢?直接從'client'外鍵中取出它。 – Monkpit
此外,我不同意您使帳單信息與運輸信息相同,但這是一個完全獨立的問題。如果我爲我的朋友或親戚購買禮物,而且我想將訂單發送到與我的結算信息不同的位置?如果我爲我的業務購買材料,但結算地點在總部,那麼這些零件應該運送到另一個工廠? – Monkpit
不幸的是我需要這兩個地址。我不能將它們從外鍵拿走,因爲客戶的地址可能會在將來發生變化,我想要保持實際的分發地址。我需要兩個地址,因爲有時公司有一個地址要發票,他們的倉庫在不同的地方。 – Blejwi