【发布时间】:2020-06-05 09:02:09
【问题描述】:
我是 Django 新手,我正在尝试创建一个博客站点,用户可以在其中注册和发布文章,但我的问题是如何在用户的个人资料页面上显示用户的帖子,以便当其他用户阅读帖子时点击作者的名字将他们带到post.author's 个人资料页面,其中列出了post.author's 最近的帖子,而不是request.user's 帖子。这是我的代码。
这里是accounts/views.py
views.py
@login_required()
def user_profile_view(request, username):
post = User.objects.filter(courses__author=username)
context = {'courses': courses}
return render(request, 'accounts/user_profile_view.html', context)
这里是 post/models.py
models.py
class Posts(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
cover = ProcessedImageField(upload_to='post_featured_image',
processors=[ResizeToFill(600, 300)],
format='png',
options={'quality': 80},
blank=True)
slug = models.SlugField()
title = models.CharField(max_length=200)
body = models.TextField()
summary = models.TextField(max_length=200)
这是模板
post_list.html
{% extends 'base.html' %}
{% load static %}
{% block content %}
<div class="col-lg-6">
{% for course in courses_list %}
<div class="central-meta item">
<div class="user-post">
<div class="friend-info">
{% if post.author.profile.avatar %}
<figure>
<img src="{{ post.author.profile.avatar.url }}" alt="">
</figure>
{% else %}
<img src="{% static 'default.ico' %}" alt="">
{% endif %}
<div class="friend-name">
<ins><a href="{% url 'accounts:user_profile' post.author.username %}" title="">{{ course.author.get_full_name|title }}</a></ins>
<span>published: {{ post.published }}</span>
</div>
<div class="post-meta">
{% if course.cover %}
<img src="{{ post.cover.url }}" alt="">
{% endif %}
<div class="friend-name">
<ins><a href="{{ post.get_absolute_url }}" title="">{{ course.title|title }}</a></ins>
</div>
<div class="description">
<p><span>{{ post.summary|capfirst }}</span></p>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
{% endblock content %}
这是我的帐户/urls.py
urls.py
app_name = 'accounts'
urlpatterns = [
path('accounts/profile/<str:username>/', user_profile_view, name='user_profile'),
]
【问题讨论】:
标签: django django-models django-views django-templates