[英]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.