1
我的models.py是:查詢的遞歸許多與一至表一對多的關係,Django的
User(models.Model):
people = models.ManyToManyField('self', through='Friend', symmetrical=False)
Friend(models.Model):
from_user = models.ForeignKey('User', related_name='friends')
to_user = models.ForeignKey('User', related_name='friends_of')
accepted = models.BooleanField(default=False)
要獲得有關user_instance
所有Friend
對象User
實例的queryset的,我正在做像這樣:
user_instance.people.all() | user_instance.user_set.all()
這個工程,但我想要的只是accepted = True
的。喜歡的東西:
user_instance.people.filter(people__accepted=True) | user_instance.user_set.filter(people__accepted=True)
注:重命名友誼人
感謝
你有沒有嘗試過,看看'user_instance.friendship.filter(friendship__accepted = TRUE)'的作品?我認爲這是做到這一點的正確方法。文檔瀏覽:https://docs.djangoproject.com/en/1.10/topics/db/models/#extra-fields-on-many-to-many-relationships – Mojimi
另外我建議你重命名的友誼的朋友或友誼,它可能會讓你感到困惑,因爲它可以是很多朋友 – Mojimi
感謝Mojimi提供的鏈接和建議。我已經重新命名了模型 – akhilsp