2017-10-18 45 views
0

我有一個用戶追隨者系統的應用程序,我已經能夠實現,但我嘗試檢索個人用戶追隨者和追隨者,但我無法得到它。下面是我的代碼django用戶追隨者從數據庫檢索

View.py

def following(request): 
    query = Contact.objects.filter(request.user.following) 
    context = { 
     'query': query 
     } 
    template = 'following.html' 
    return render(request, template, context) 

Models.py

class Contact(models.Model): 
    user_from = models.ForeignKey(User,related_name='rel_from_set') 
    user_to = models.ForeignKey(User,related_name='rel_to_set') 
    created = models.DateTimeField(auto_now_add=True,db_index=True) 

    class Meta: 
     ordering = ('-created',) 

    def __str__(self): 
     return '{} follows {}'.format(self.user_from,self.user_to) 

User.add_to_class('following',models.ManyToManyField('self', through=Contact,related_name='followers', symmetrical=False)) 

模板

{% load staticfiles %} 
{% block content %} 
<h2>following</h2> 
<div id="action-list"> 

<h1>{{ results.get_full_name }}</h1> 
</div> 
{% endblock %} 

附加代碼將根據要求添加。

+0

請提供更多代碼 –

+0

模型是什麼樣的? – Jonathan

回答

0

這可以通過兩種方式解決。第一:你的過濾器是不正確的:

def following(request): 
    query = Contact.objects.filter(user_from=request.user) 
    context = { 
     'query': query 
     } 
    template = 'following.html' 
    return render(request, template, context) 

使用related_name

def following(request): 
    query = request.user.rel_from_set.all() 
    context = { 
     'query': query 
     } 
    template = 'following.html' 
    return render(request, template, context) 

與反向關係的另一個解決方案工程類似,當然,對於Contactuser_to領域。

編輯:您的模板不使用您在視圖following中定義的正確上下文變量。所以你需要調整一下:

{% load staticfiles %} 
{% block content %} 
<h2>following</h2> 
<div id="action-list"> 

{% for result in query %} 
    <h1>{{ result }}</h1> 
{% endfor %} 
</div> 
{% endblock %} 
+0

它不顯示以下或追隨者。請幫助審查 – King

+0

我認爲你必須更好地指定你的問題。你的意思是例如:'User.objects.filter(rel_from_set__user_to = request.user)'? – White

+0

編號我改編了你的解決方案,但是它沒有顯示跟隨我的用戶或者當我將其更改爲user_to時跟隨的用戶 – King