在个人资料页面上显示用户帖子

时间:2017-04-19 01:03:25

标签: python django

嘿伙计们我想做一些类似于这个问题的事情,但我没有看到我的代码有什么问题。 Something like this question。我只是想为我的网站制作一个个人资料页面,我想在个人资料页面上添加所有用户帖子,但我似乎无法让它工作。我尝试使用谷歌搜索解决方案,甚至尝试了其他stackoverflow问题,但无法正确答案。如果有人能帮助我,我将不胜感激。感谢。

我也知道它与我链接的问题相同,但下面是我尝试解决方案中的人做了什么,我只是似乎没有让它工作,并且已经过了几个小时,但遗憾地说,但是什么我能说还在学习:p

models.py

from django.db import models
from django.contrib.auth.models import User


def upload_location(posts, filename):
    return ("%s/%s" %(posts.author, filename))

class Post(models.Model):
    title = models.CharField(max_length=200)
    image = models.ImageField(upload_to=upload_location, null=True, blank=True, height_field="height_field", width_field="width_field")
    height_field = models.IntegerField(default=0)
    width_field = models.IntegerField(default=0)
    description = models.TextField()
    pub_date = models.DateTimeField(auto_now=False)
    author = models.ForeignKey(User)
    votes_total = models.IntegerField(default=0)

def __unicode__(self):
    return self.user.username

def pub_date_pretty(self):
    return self.pub_date.strftime('%b %d %Y')

views.py,我从其他应用程序导入我的Post类,所以我认为这可能是问题所在。

from posts.models import Post

def view_profile(request):
    logged_in_user = request.user
    logged_in_user_posts = Post.objects.filter(user=author)

    return render(request, 'accounts/profile.html', {'posts': logged_in_user_posts})

html文件

<div>
{% for post in posts %}

    Post: {{ post.author }}

    <br>

{% endfor %}
</div>

urls.py

from django.conf.urls import url
from . import views

app_name = 'accounts'

urlpatterns = [
    url(r'^register/', views.signup, name="signup"),
    url(r'^login/', views.loginuser, name="login"),
    url(r'^logout/', views.logoutview, name="logout"),
    url(r'^profile/', views.view_profile, name="viewprofile"),
]

阅读下面发布的第一个答案后添加

在查看下面的帖子后,我收到了这个错误:

/ accounts / profile / [Errno 2]中的FileNotFoundError没有这样的文件或目录:&#39; C:\ Users \ Mohamed \ Desktop \ thegallerybox \ media_cdn \ image

我是否收到此错误,因为在我的html文件中,我没有从媒体文件夹中的用户文件夹中调用用户图像。我根据models.py中显示的作者上传图像,所以我认为这可能与在html文件中获取图像有关

def upload_location(posts, filename): return ("%s/%s" %(posts.author, filename))

1 个答案:

答案 0 :(得分:1)

您希望根据author进行过滤,因为这是Post模型中定义的内容,您想要检查当前登录的用户。

尝试进行以下更改

logged_in_user_posts = Post.objects.filter(author=logged_in_user)