2016-02-28 114 views
0

我是django的新手,做了一個簡單的應用程序,它可以讓用戶對名單進行六次挑選,以便投票選出前六名。我遇到的問題是任何用戶在登錄後都可以看到其他人的投票!我如何讓記錄的用戶(不是管理員)只能看到他們的投票,而不是每個人的投票? 我一直在這裏看,它看起來可以用查詢集完成?但希望'能夠部署這個想法。Django如何僅在登錄時顯示用戶自己的帖子?

我在model.py兩類:

class CandidateName(models.Model): 
    canidate_name = models.CharField(max_length=15) 
    def __str__(self): 
     return self.canidate_name; 

class Vote(models.Model): 
    first_pick = models.ForeignKey(CandidateName, related_name= 'first') 
    second_pick = models.ForeignKey(CandidateName, related_name='second') 
    third_pick = models.ForeignKey(CandidateName, related_name='third') 
    fourth_pick = models.ForeignKey(CandidateName, related_name='fourth') 
    fifith_pick = models.ForeignKey(CandidateName, related_name='fifth') 
    sixth_pick = models.ForeignKey(CandidateName, related_name='sixth') 
+0

您是如何建立投票表和用戶表之間的連接的? – Newtt

回答

3

你可以這樣做增加了用戶現場您的投票類。

from django.contrib.auth.models import User 

class Vote(models.Model): 
    user = models.ForeignKey(User) 
    first_pick = models.ForeignKey(CandidateName, related_name= 'first') 
    second_pick = models.ForeignKey(CandidateName, related_name='second') 
    third_pick = models.ForeignKey(CandidateName, related_name='third') 
    fourth_pick = models.ForeignKey(CandidateName, related_name='fourth') 
    fifith_pick = models.ForeignKey(CandidateName, related_name='fifth') 
    sixth_pick = models.ForeignKey(CandidateName, related_name='sixth') 

然後在您的views.py中檢索與當前登錄用戶關聯的投票並將其傳遞給您的模板。

if request.user.is_authenticated(): 
    votes_by_user = Votes.objects.filter(user=request.user) 
相關問題