簡體   English   中英

Django'User'對象不可迭代

[英]Django 'User' object is not iterable

我不知道為什么我收到這個錯誤..

['用戶'對象不可迭代]

在這里,我想在主頁中打印(登錄用戶)粉絲。 除了錯誤是我的models.py是對的? 追隨者和追隨機制。

模型

class Follow(models.Model):
    following = models.ForeignKey('auth.User', related_name='following')
    followers = models.ForeignKey('auth.User', related_name='followers')

視圖

def profile(request):
   current_user = request.user
   twi = Follow.objects.get(pk=current_user.id)
   display = twi.followers
   return render(request,'home.html' , 
       {'detail':display,'user':current_user,})

模板

{% for o in detail %}
<h1>o.followers</h1>
{% endfor %}

您的邏輯中有一個混合,您的detail指的是followers但字段本身是指向單個用戶的鏈接,您需要將此字段設置為ManyToMany關系,或者使用反向查找來查找用戶所遵循的內容。

(在你的上下文中也有一個流浪逗號,這可能會在以后引起問題。

get返回單個查詢集,如果使用get,則不能迭代它

在模板中使用它

   <h1>{{ detail.followers }}</h1>

或者如果你需要多個

在視野中

twi = Follow.objects.filter(pk=current_user.id)

並改變這一行

display = twi.followers

display = twi

並在模板中

{% for o in detail %}
   <h1>{{ o.followers }}</h1>
{% endfor %}

如果要迭代“詳細信息”並且不想更改模板中的代碼,請使用filter()查詢並將'display' to result of your filter query.設置'display' to result of your filter query.

或者如果您不打算更改視圖代碼,可以編輯模板代碼

{% for o in detail %} <h1>o.followers</h1> {% endfor %}

只是

<h1>{{detail}}</h1>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM