首页 > 解决方案 > 如何在 django 中获取用户(当前已登录)的帖子?

问题描述

当用户登录并进入他/她的帐户时,他们必须在那里看到旧帖子,他们过去上传的内容。如果通过比较当前登录用户 (request.user) 和数据库中可用的用户来尝试模板中的 if 语句。如果条件为真,那么与该用户相关的所有帖子都必须在我的帐户页面中可见。但这如果条件不起作用。当我删除此条件时,它会显示所有帖子,无论这些帖子是否相关或由用户上传。当我应用这个条件时,它什么也不显示,没有错误,它只显示我的导航栏,这意味着其余的代码都很好,问题出在 if 语句上。

模板 :

{% for i in userstweet %}
    {% if request.user==i.user  %}
        Username : {{i.user}}
        <br />
        {{i.datetime}}
        <br />
        <img src="{{i.image.url}}"  width=400 height=400 />
        <br />
        <br />
        {{i.tweet}}
    {% endif %}
{% endfor %}

看法 :

def myaccount(request):
    return render(request, 'tweets/myaccount.html', {'userstweet': Tweets.objects.all})  

网址:

path('myaccount', views.myaccount,name='account')                   

我希望当前登录用户上传的帖子将显示在我的帐户页面上,但它什么也没提供。

标签: pythondjango

解决方案


只获取当前用户并查询该用户的所有推文不是更好吗?你可以做的是:

def myaccount(request):
    current_user = request.user
    # Where user is whatever foreign key you specified that relates to user.
    user_tweets = Tweets.objects.filter(user=current_user)

    return render(request, 'tweets/myaccount.html', {'userstweet': user_tweets})  

推荐阅读