【发布时间】:2016-02-21 14:22:06
【问题描述】:
我不知道为什么,但是我的 Django 循环没有输出任何东西。这是相关代码。
我的 AbstractUser 类由这两个方法组成:
def get_followers(self):
return [user for user in self.followers.all()]
def get_following(self):
return [user for user in self.following.all()]
我的看法:
class UserFollowingView(View):
def get(self, request, username):
user = get_object_or_404(apps.get_model('users', 'User'), username=username)
context = {
'username': user.username,
'following': user.get_following(),
}
return render(request, 'core/user_following.html', context)
class UserFollowersView(View):
def get(self, request, username):
user = get_object_or_404(apps.get_model('users', 'User'), username=username)
context = {
'username': user.username,
'followers': user.get_followers(),
}
return render(request, 'core/user_followers.html', context)
我的模板:
user_following.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User | {{ username }}</title>
</head>
<body>
<h1>{{ username }} | Following</h1><hr/>
{% for user in user_following %}
<h3>{{ user.username }}</h3>
{% endfor %}
</body>
</html>
user_followers.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User | {{ username }}</title>
</head>
<body>
<h1>{{ username }} | Followers</h1><hr/>
{% for user in user_followers %}
<h3>{{ user.username }}</h3>
{% endfor %}
</body>
</html>
user_following.html 或 user_followers.html 文件都不起作用
我已确保每个用户都有关注者/关注者(因此填充了列表),但由于某种原因,循环没有运行。我没有收到任何错误。
>>> a = User.objects.get(username="Test")
>>> a.get_followers()
[<User: Test2>, <User: Test3>]
>>>
查看输出:1
【问题讨论】:
-
您的
get_followers和get_following方法中不需要列表理解。您可以使用list(self.followers.all())和list(self.following.all())。 -
user_following和user_followers不在模板context中。
标签: python django django-templates