【问题标题】:Django Template TagsDjango 模板标签
【发布时间】:2021-02-18 19:11:59
【问题描述】:

我正在尝试在我的网站中创建一个链接,该链接指向用户的个人资料页面,但现在登录后会转到已登录用户的个人资料页面。该链接是作者的姓名,我希望它在单击时转到作者个人资料页面,而不是登录用户的个人资料页面。我认为问题出在链接的 url 模板标记中( post_index.html 中的第一个标记),但我不知道该怎么做。

post_index.html

   {% for post in post_list %}
    <article class="media content-section">
      <img class= "rounded-circle article-img" src="{{ post.author.profile.profile_pic.url }}">
        <div class="media-body">
          <div class="article-metadata">
#Here!        <a class="mr-2" href="{% url 'profile' %}">{{ post.author }}</a>
            <small class="text-muted">{{ post.published_date }}</small>
          </div>
          <h2><a class="article-title" href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2>
          <p class="article-content">{{ post.text }}</p>
        </div>
      </article>
    {% endfor %}

views.py

@login_required
def profile(request):
    if request.method == "POST":
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(request, f"Your Account Has Been Updated! ")
            return redirect("profile")

    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileUpdateForm(instance=request.user.profile)
    return render(request, 'users/profile.html', {"u_form": u_form, "p_form": p_form})

models.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_pic = models.ImageField(default="default.jpg", upload_to="profile_pics")

    def __str__(self):
        return f"{self.user.username} Profile"

【问题讨论】:

  • 这里的post_list 是什么?在您给定的 sn-p 中,我看不到任何相同的用法。
  • post_list 是我在页面上的分页帖子

标签: django django-templates


【解决方案1】:

您应该为作者配置文件创建一个单独的模型,类似于您当前拥有的用于用户的配置文件模型(这就是为什么当您单击链接时它会重定向到登录用户的配置文件)并将作者字段用作一对一的关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 2012-10-31
    • 2014-03-20
    • 1970-01-01
    • 2014-07-01
    • 2011-01-07
    • 2018-10-21
    • 2014-07-25
    相关资源
    最近更新 更多