我試圖從一個特定的模型獲取查詢。我無法正確過濾數據。django視圖中的多模型過濾
我已經修復了一個錯誤,它返回了其他用戶的數據,但現在它返回了模型中一行數據的重複項。
events = Event.objects.filter(club=user.get_profile().main_club) | Event.objects.filter(invclub=user.get_profile().main_club) | Event.objects.filter(invited=user)
這是我試圖執行的查詢。
,我瞄準的結果,是讓用戶已手動受邀所有事件(邀請)他們的俱樂部已經邀請(invclub)或他們的俱樂部是主機俱樂部(俱樂部)
我可能接近這個在錯誤的方向,這可能是一個更簡單的方法來做到這一點。任何幫助是極大的讚賞。
編輯:comms.models
class Event(models.Model):
title = models.CharField(max_length='255')
club = models.ForeignKey(Club, verbose_name="Host Club")
invclub = models.ManyToManyField(Club, verbose_name="Invited Clubs", related_name="Invited Clubs", blank=True)
l_desc = models.CharField(max_length='255', verbose_name="Location Description")
l_long = models.CharField(max_length='255', verbose_name="Longitude", blank=True)
l_lat = models.CharField(max_length='255', verbose_name="Latitude", blank=True)
edate = models.DateTimeField(default=datetime.now, verbose_name="Event Date", blank=True)
length = models.CharField(max_length='255', verbose_name="Event Length", blank=True)
invited = models.ManyToManyField(User, related_name="Invited Users", blank=True)
attending = models.ManyToManyField(User, related_name="Attending Users", blank=True)
declined = models.ManyToManyField(User, related_name="Declined Users", blank=True)
description = models.TextField(blank=True)
修正:
最終解決方案使用Q(),如下建議,而追加.distinct()函數,以確保沒有重複返回對象。
你可以發佈你的模型嗎?沒有模型就很難考慮查詢。 – 2010-10-09 15:29:18