[英]Display latest “commentator” username in forum app [Django]
我正在創建一個論壇應用,並希望顯示最新評論者的用戶名(如屏幕截圖所示):
但是我在信息方面有些空白,這是到目前為止的代碼:
class Forum(models.Model):
"""
Forum Model
"""
forum_author = models.ForeignKey(
Profile,
related_name='user_forums',
null=True,
blank=True,
on_delete=models.CASCADE
)
forum_title = models.CharField(
max_length=225,
verbose_name=u'Thread Title',
blank=False,
null=False
)
forum_category = models.ForeignKey(
'Category',
verbose_name=u'Thread Category',
)
forum_content = MarkdownxField()
class Comment(models.Model):
"""
Comment Model
"""
forum = models.ForeignKey(
'Forum',
related_name='forum_comments'
)
comment_author = models.ForeignKey(
Profile,
related_name='user_comments',
null=True,
blank=True,
on_delete=models.CASCADE
)
comment_content = MarkdownxField()
created_date = models.DateTimeField(
default=datetime.datetime.now,
)
...
from app_forum.models import Forum, Comment
def forum_list_view(request):
forum_list = Forum.objects.all().order_by("-misc_created")
return render(request, 'app_forum/forum_list.html' {'forum_list': forum_list})
我的單線程視圖:
def forum_single_view(request, pk):
forum = get_object_or_404(Forum, pk=pk)
forum_comments = Comment.objects.filter(forum=forum.id)
paginator = Paginator(forum_comments, 10)
page = request.GET.get('page', 1)
try:
forum_comments = paginator.page(page)
except PageNotAnInteger:
forum_comments = paginator.page(1)
except EmptyPage:
forum_comments = paginator.page(paginator.num_pages)
return render(request, 'app_forum/forum_single.html', {'forum': forum, 'forum_comments': forum_comments})
您可以通過以下方式獲取最新評論
L_comment = Comment.objects.latest('created_date')
您可以通過以下方式獲得評論的用戶
L_comment.comment_author
如果您想在特定論壇中獲得最新評論,
forum = Forum.objects.get(forum_title='forum-title')
latest_comment = forum.forum_comments.latest('created_date')
author = latest_comment.comment_author
更新:
更好的選擇是在論壇類中定義一個方法,如下所示:
def latest_comment_author(self):
return self.forum_comments.latest('created_at').comment_author
您可以通過以下方式從模板訪問它
{{ forum.latest_comment_author }}
您可以為此使用相關的對象管理器。 在論壇模型上創建一種方法,以檢索關於論壇的最新評論。 就像是:
@cached_property
def latest_coment(self):
return self.forum_comments.order_by('-created_date').first()
然后,您可以在模板上調用此方法以獲取有關它的最新評論
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.