2011-06-29 130 views
0

我有一個小問題,並想知道如果有人可以幫助我。我試圖做一次檢查,看看request.user是否是ManyToMany關係表中的用戶之一。有沒有辦法做到這一點?有沒有辦法檢查request.user ManyToManyField

例子:

我要檢查,如果用戶在對該業務頁面,如果是這樣,給他們取消關注,反之亦然的能力。

我:

followers = models.ManyToManyField(User, related_name="Followers", null=True, blank=True) 

只是想知道,如果那裏有一個方法來檢查對追隨者表request.user.id該特定ID。

謝謝大家。

史蒂夫

回答

2

這種 「djangoic」 的方式做到這一點:

if page.followers.filter(id=request.user.id).exists(): 
    do_something() 

更 「Python化」 的方式,這是不建議,因爲它是非常低效的數據庫明智的:

if request_user in page.followers.all(): 
    do_something() 

(這後一個加載的所有用戶數據到蟒蛇,而第一個使用一個數據庫查詢)

0

你應該能夠輕鬆地檢查

try: 
    this_page = BusinessPages.objects.get(slug=slug) 
except BusinessPage.DoesNotExist: 
    raise Http404 

if request.user in this_page.followers.all(): 
    ... 
+2

這似乎是一個偉大的地方使用'get_object_or_404':https://docs.djangoproject.com/en/dev/topics/http/shortcuts /#get-object-or-404 –

+0

@Jack M.當然。我只是想明確指出在查詢不在那裏的BusinessPage時可能會引發異常 –

相關問題