2016-07-31 17 views
0

我想弄清楚如何在我的項目中存儲城市之間的價格,以便我可以輕鬆地處理這些問題,管理員可以輕鬆地更改這些價格。中間表的多對多字段不得對稱

我決定創建一個through模型,根據這個ANSWER,這被稱爲Ride

但是當我做makemigrations,Django的返回:

va_app.City.rides:(fields.E332)與中間表多到很多領域不能是對稱的。

class City(models.Model): 
    name = models.CharField(max_length=80) 
    country = models.ForeignKey('Country') 
    _close_cities = models.ManyToManyField('City', blank=True, related_name='close_cities_set',symmetrical=True) 
    rides = models.ManyToManyField('self',through='Ride') 

class Ride(models.Model): 
    price = models.DecimalField(max_digits=8, decimal_places=2, blank=True, null=True) 

你知道如何使它發揮作用?

PS>我唯一希望的是能夠以簡單的接入價格(如City.price(City)或別的東西和管理員能夠改變價格。

回答

0

的錯誤是很清楚,你不能有M2M與intermediate表和symmetrical=True關係,它必須是symmetrical=False

因此,與嘗試。

rides = models.ManyToManyField('self', through='Ride', symmetrical=False) 

不過,我覺得有什麼不對您的模型結構,你有兩個M2M字段指向self?我不確定Rides型號的用途是什麼,但是這個型號應該只有FKscity