【问题标题】:making user post show on profile page在个人资料页面上显示用户帖子
【发布时间】:2017-04-19 01:03:25
【问题描述】:

嘿,伙计们,我想做类似这个问题的事情,但我看不出我的代码有什么问题。 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"),
]

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

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

FileNotFoundError at /accounts/profile/ [Errno 2] 没有这样的文件或目录:'C:\Users\Mohamed\Desktop\thegallerybox\media_cdn\image‌e

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

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

【问题讨论】:

    标签: python django


    【解决方案1】:

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

    尝试进行以下更改

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

    【讨论】:

    • 当我这样做时,我得到这个: FileNotFoundError at /accounts/profile/ [Errno 2] 没有这样的文件或目录:'C:\\Users\\Mohamed\\Desktop\\thegallerybox\\ media_cdn\\图像
    • 按照您的要求添加了 url.py 文件夹
    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2014-01-29
    • 2020-08-28
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多