对于我的Django博客,我有一个followmodels.py,我创建了一个followviews.py来传递URL参数的slug值。
然而,我正在努力在视图中创建一个模型,以便从Category类中获取其他数据(person和description)。
我自己尝试了一些模式,但无法将它们传递到HTML。(始终显示错误或不显示)
你能告诉我如何解决这个问题吗。
型号.py
class Category(models.Model):
person = models.CharField(max_length=20)
description = models.TextField()
slug = models.SlugField()
def __str__(self):
return self.person
视图.py
def blog_category(request, category):
posts = Post.objects.filter(categories__slug__contains=category).order_by("-created_on").distinct()
context = {"category": category, "posts": posts}
return render(request, "blog_category.html", context)
HTML(本地主机:8000/slug)
{{ person }}
{{ description }}
这是my models.py的完整代码
class Category(models.Model):
person = models.CharField(max_length=20)
description = models.TextField()
slug = models.SlugField()
def __str__(self):
return self.person
class Recommender(models.Model):
recommender_name = models.CharField(max_length=20)
slug = models.SlugField()
def __str__(self):
return self.recommender_name
class Post(models.Model):
book_title = models.CharField(max_length=255)
author = models.CharField(max_length=255)
book_link = models.CharField(max_length=255)
recommenders = models.ForeignKey("Recommender", on_delete=models.CASCADE,)
source = models.TextField()
source_link = models.CharField(max_length=255)
created_on = models.DateTimeField(auto_now_add=True)
last_modified = models.DateTimeField(auto_now=True)
categories = models.ManyToManyField("Category", related_name="posts")
slug = models.SlugField()
def __str__(self):
return self.book_title
将返回查询集。它可以有多个模型类实例(因为您使用的是
filter
)。在您的上下文中,您将此查询集作为posts
发送到您的模板所以在你的HTML中你可以使用这样的东西。您需要使用for循环,因为
posts
中可以有多个项我会看看this example
也就是说,如果按照示例中所示的方式呈现模板,则应该能够
相关问题 更多 >
编程相关推荐