2016-03-18 93 views
-1

我有這個ManyToManyField恢復數據的事件模型(用戶)一個問題:如何從ManyToManyField獲取數據 - Django的

class Event(models.Model): 
    name = models.CharField(max_length=26) 
    description = models.CharField(max_length=200) 
    date = models.DateField() 
    user = models.ForeignKey(User) 
    users = models.ManyToManyField(User, related_name="users", blank=True) 
    image = models.ImageField(
     upload_to='images/', 
     default='images/default.png' 
    ) 

用戶= models.ManyToManyField創建一個額外的表「events_event_users」,它存儲user_idevent_id字段。所以我想從事件模型輸出所有事件信息,其中user_id從那個附加表格等於request.user。請幫忙,我該怎麼做?

回答

1

你可以做request.user.users.all()

注意,這是因爲你設置了related_name,它定義了從用戶到事件向後關係的不必要的混亂。離開了這一點,並且代碼更容易理解:

request.user.event_set.all() 

(如果你必須設置一個,至少叫它events,不users

+0

不知道你是怎麼擴大'request.user'因爲op沒有提供有關request.user的信息 –

+1

OP爲什麼需要提供任何信息? 'request.user'由Django提供;即使他們替換了他們自己的模型,這對於我們感興趣的是事件中定義的* reverse *關係也沒有什麼不同。 –

+0

中間表的內容是什麼?這些事件有不同的user_ids嗎? –