Django:从特定的us获取所有对象

2024-05-15 00:08:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试显示用户的所有Announce对象时遇到问题。 我的问题是:假设我是以id=1的用户身份登录的。当我转到/users/1/时,它会显示我所有的帖子。但问题是,当我想通过转到/users/2/显示另一个id=2的用户的所有帖子时,它仍然显示我所有的Announce对象,而不是id=2的用户。在

模型.py

class Announce(models.Model):
    owner        = models.ForeignKey('auth.User', related_name='announces')
    created_date = models.DateTimeField(auto_now_add=True)
    body         = models.TextField(max_length=1000)

视图.py

^{pr2}$

网址.py

urlpatterns = [
url(r'users/(?P<pk>[0-9]+)/$', views.UserAnnouncesList.as_view(), name='user_announces_list'),]

用户宣布_列表.html

{% extends "account/base.html" %}

{% block content %}
{% for announce in all_announces_by_user %}
<h1>{{announce.user.username}}</h1>
    <p>{{announce.body}}</p>

{% endfor %}
{% endblock content %}

我是否必须使用类似于:公告.objects.get(pk=???)?在

谢谢你的帮助!在


Tags: 对象用户namepyidmodelshtmlbody
1条回答
网友
1楼 · 发布于 2024-05-15 00:08:39

request.user是登录的用户。您需要使用作为url传递的pk。它存储在listview的kwargs字典中:

class UserAnnouncesList(ListView):
    model = Announce
    template_name = 'myApp/user_announces_list.html'
    context_object_name = 'all_announces_by_user'

    def get_queryset(self):
        return Announce.objects.filter(owner=self.kwargs['pk'])

相关问题 更多 >

    热门问题