嘿伙计们我想做一些类似于这个问题的事情,但我没有看到我的代码有什么问题。 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"),
]
阅读下面发布的第一个答案后添加
在查看下面的帖子后,我收到了这个错误:
我是否收到此错误,因为在我的html文件中,我没有从媒体文件夹中的用户文件夹中调用用户图像。我根据models.py中显示的作者上传图像,所以我认为这可能与在html文件中获取图像有关
def upload_location(posts, filename):
return ("%s/%s" %(posts.author, filename))
答案 0 :(得分:1)
您希望根据author
进行过滤,因为这是Post
模型中定义的内容,您想要检查当前登录的用户。
尝试进行以下更改
logged_in_user_posts = Post.objects.filter(author=logged_in_user)