我不知道为什么,但我的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
答案 0 :(得分:1)
您已将user_following
和user_followers
用作模板中的独立变量;但他们不是,他们是用户的方法。但是,您已将following
和followers
变量传递到您的上下文中;也许你打算用那些呢?
(请注意,这些方法都没有做任何有用的事情;它们完全等同于调用user.followers.all()
或user.following.all()
,因此您可以在视图或模板中执行此操作。)