0
這些是我的模特。在一行中過濾反向manytomany django?
class League(models.Model):
league_name=models.CharField(max_length=20)
league_id=models.IntegerField()
class LeagueAdministrator(models.Model):
administrator = models.ManyToManyField(User)
league = models.ManyToManyField('League')
考慮到可能存在的聯盟多個管理員:我想它返回的查詢與誰是具體的聯賽administator的所有用戶對象上設置一個查詢。這就是我現在所做的。
league=League.objects.get(league_id=1)
usersids=LeagueAdministrator.objects.filter(league=league).values_list('administrator')
Administrators=User.objects.filter(id__in=usersids)
謝謝。
我不認爲你的模型結構是正確的:我懷疑*非常*多少你需要在兩側ManyToManys一個LeagueAdminstrator類。相反,LeagueAdministrator本身就是多對多關係中的鏈接表,與ForeignKey都是雙方。 – 2014-08-31 15:38:26
我不明白:如果有很多聯賽和用戶可以在很多聯賽中踢球,該怎麼辦?如果你說我不需要多對多,但只需要外鍵:在這種情況下,我需要多對多的字段? (如果出現一個連接到我的模型的示例) – foebu 2014-08-31 15:43:38
但我的觀點是,*是*多對多。任何多對多關係都有一個鏈接表和外鍵:Django ManyToManyField只是爲你創建這個表,並創建一個Pythonic訪問連接的方式。在你的情況下,你允許聯盟和用戶的每個組合都有多個聯盟管理員,這是沒有意義的:任何人只能成爲每個團隊的管理員,即使他們可以管理多個團隊,每個團隊都可以擁有多個管理員。 – 2014-08-31 15:54:44