【发布时间】:2019-07-15 09:15:52
【问题描述】:
我正在创建一个需要评论部分的博客(第一个项目,Python/Django 3 周)。到目前为止,我已经创建了 2 个模型(博客是主要的,评论与博客的外键链接)但由于某种原因,我找不到将评论模型中的信息显示到我的HTML 部分。
我已经尝试过使用字典,多次重写模型和视图(由于我发现了不同的 youtube 视频),但似乎没有任何工作正常。
这些是我的模型:
class Blog(models.Model):
title = models.CharField('Blog\'s title', max_length=100, blank=False)
slug = models.SlugField('Enter your blog\'s url', blank=False)
date = models.DateTimeField('Date and time on publication',
blank=False)
content = models.TextField(blank=False)
thumb = models.ImageField(blank=True, null=True,
default='default_blog_icon.jpg')
def __str__(self):
return self.title
def snippet(self):
return self.content[:50] + ' ' +'...'
class Comment(models.Model):
post = models.ForeignKey(Blog, on_delete=models.CASCADE,
related_name='comments')
user = models.CharField(max_length=200)
body = models.TextField(max_length=200)
created = models.DateTimeField(auto_now_add=True)
approved = models.BooleanField(default=False)
def approved(self):
self.approved = True
self.save()
def __str__(self):
return self.user
意见:
def index(request):
blogs = Blog.objects.all().order_by('-date')
comments = Comment.objects.all()
args = {'blogs': blogs, 'comments': comments}
return render(request, "blog/index.html", args)
def blog_details(request, slug):
slug_url = Blog.objects.get(slug=slug)
return render(request, 'blog/blog_details.html', {'blog_info': slug_url})
还有 HTML:
{% for blog in blogs %}
<div class="bloggy">
<h3><a href="{% url 'blog_details' slug=blog.slug %}">{{
blog.title }}</a></h3>
<img src ="/media/{{ blog.thumb }}">
<p>{{ blog.snippet }}</p>
<p>Posted on {{ blog.date }}</p>
<p>{{ comments }}</p>
<p>{{ Comments.Blog.get_user }}</p>
<p>{{ comment.user }}</p>
<p>{{ comment.created }}</p>
<p>{{ comment.approved }}</p>
</div>
{% endfor %}
到目前为止,我在前端得到的唯一信息是 {{ comments }},它为我提供了我设置的用户名。除此之外没有其他任何显示。
我需要以某种方式显示用户名、评论正文(内容本身)和日期。
我们将不胜感激任何帮助、反馈或指导。
干杯
【问题讨论】:
-
您真的想要索引页面上每个博客的所有 cmets 吗?
-
不,但是一旦我发现要显示数据,我就会将它们放在另一个页面中。问题是如何将数据从后端获取到前端。
标签: django django-models django-views