繁体   English   中英

在Django主页中显示用户个人资料链接时出错

[英]Error in showing user profile link in homepage in Django

这是我的模型

class Post(models.Model):
    topic = models.CharField(max_length=200)
    description = models.TextField()
    created_by = models.ForeignKey(User, related_name='posts')
    created_on = models.DateTimeField()

class Comment(models.Model):
    commented_by = models.ForeignKey(User, related_name='comments')
    commented_on = models.ForeignKey(Post, related_name='comments')
    commented_text = models.CharField(max_length=500)
    commented_time = models.DateTimeField(auto_now_add=True)

class Blogger(models.Model):
    username = models.OneToOneField(User, related_name='bloggers')
    blogger_bio = models.CharField(max_length=1000)

用户名的URL.py

url(r'^(?P<username>[a-zA-Z0-9]+)/$', views.author_desc, name='author_desc'),

Views.py

from django.shortcuts import render, get_object_or_404
from .models import Post, User, Comment, Blogger
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def home(request):    
    posts_list = Post.objects.all()
    return render(request, 'home.html', {'posts': posts})

和我要显示的home.html:

<!DOCTYPE html>
<html>
<head>
  <title>HOME</title>
</head>

<body>

<h2>All Blogs</h2>

{% for post in posts %}
  <a href="{% url 'post_desc' pk=post.pk %}"><b>Post Topic: </b>{{ post.topic }}</br></a>
      <b>Published Time: </b>{{ post.created_on }}</br>
      <b>Author: </b><a href="{% url 'author_desc' blogger.username %}">{{ post.created_by }}</a></br></br>
{% endfor %}

</body>

</html>

我想通过家庭链接显示每个博客作者的页面。 但这越来越麻烦了。

我在这里做错了什么?

检查blogger.username参数是否为空。

实际上,这些模型看起来并不那么好。 Post模型中的ForeignKey应该是Blogger模型。

class Post(models.Model):
    created_by = models.ForeignKey(Blogger, related_name='posts')

然后,您可以在模板中执行

{% for post in posts %}
 <a href="{% url 'post_desc' pk=post.pk %}"><b>Post Topic: </b>{{ post.topic }}</br></a>
  <b>Published Time: </b>{{ post.created_on }}</br>
  <b>Author: </b><a href="{% url 'author_desc' post.created_by.user.username %}">{{ post.created_by.user }}</a></br></br>{% endfor %}

尝试这个

{% for post in posts %}
<a href="{% url 'post_desc' pk=post.pk %}"><b>Post Topic: </b>{{ post.topic }}</br></a>
  <b>Published Time: </b>{{ post.created_on }}</br>
  <b>Author: </b><a href="{% url 'author_desc' post.created_by.username %}">{{ post.created_by }}</a></br></br>
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM