簡體   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