我正在開發一個Web應用程序。這個程序有模型Location
它可以是紐約,Wienna,巴黎等如何存儲每對對象的價格
現在我想有一些數據結構/表持有價格從集Location
對象的任何元組。
因此,如果有3個對象,但 - 紐約州,賓夕法尼亞,威斯康星,我不得不價格存儲:
NY - PA #(since there is NY - PA price, I don't have to store PA - NY which is the same)
NY - WI
PA - WI
而且我想管理員可以添加/更改價格的任何元組。
我該怎麼辦?我想到了一些可以保存價格信息的網格,但我不知道如何在Django admin
和Django ORM
中模擬這種網格。
什麼我迄今所做的是一個模型CityPrice
它看起來像這樣的創作:
class CityPrice(models.Model):
city_one = models.ForeignKey(City, related_name='city_tuple')
city_two = models.ForeignKey(City)
price = models.DecimalField(max_digits=8, decimal_places=2, blank=True, null=True)
class Meta:
unique_together = (('city_one', 'city_two'),)
但你可以看到有許多問題存在。一個問題是城市不是「平等的」,必須是city_one
,而且必須是city_two
。另一個問題是Admin
必須爲Django-Admin
中的每個元組新標籤打開,並在那裏更改非常不舒服的價格。
但一個位置不僅具有一個價格。 ..它有**數量的位置對象 - 1 **價格。對於每一對。所以它不會這樣工作,不是嗎? –
在這種情況下,使用ManyToMany字段。 –