まず、これは簡単な質問だと思います。私はDjangoを使い始めたばかりで、すべての初心者がそうであるように、簡単なブログを作成すると思いました。
単純なデータモデル、FKを介したユーザーへのリンクを含むPostモデルがあります。
models.py
class Post(TimeStampedActivate):
"""
A blog post
"""
title = models.CharField(max_length=255)
slug = models.SlugField()
excerpt = models.TextField(blank=True)
body = models.TextField()
publish_at = models.DateTimeField(default=datetime.datetime.now())
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
active = models.BooleanField(default=False, help_text='Is the blog post active?')
user = models.ForeignKey(User, related_name='post_user')
def __unicode__(self):
return self.title
次に、投稿を作成した人のユーザー名と一緒にすべての投稿を一覧表示するページが必要です。私の現在のビューは次のようになります。
views.py
def index(request):
posts = Post.objects.filter(active=True)
user = User.objects.get(id=1)
return render(request, 'blog/index.html', {'posts': posts, 'user': user})
私のテンプレート 現在、これはID1に一致するユーザー名を表示するだけです。
{% for post in posts %}
<h2><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h2>
<p>{{ post.excerpt|truncatewords:30 }}</p>
<p>Posted by {{ user.first_name }} {{ user.last_name }}</p>
{% endfor %}
投稿を担当するユーザーの名前と名前を確実に取得するために、views.pyファイルを変更するにはどうすればよいですか?