我是 Django 的新手,如果问题很愚蠢,我很抱歉。我有一个带有两个 slug 的 URL,一个用于属于 manytomany 字段的类别,另一个用于帖子:
path('<slug:slug_staticpage>/<slug:slug>/', views.post, name='post_detail')
视图.py
def post(request, slug, slug_staticpage):
category = get_object_or_404(StaticPage, slug_staticpage=slug_staticpage)
blogpost = get_object_or_404(Post, slug=slug)
post = Post.objects.filter(slug=slug)
page_id = category.pk
related_posts = Post.objects.filter(static_page__pk=page_id)[:6]
return render(request, "blog/blog-post-final.html", {'slug': slug, 'slug_staticpage': category.slug_staticpage, 'post':post, 'related_posts':related_posts})
模型.py
class Post(models.Model):
title = models.CharField(max_length=300)
content = RichTextField()
slug = models.SlugField(max_length=200, unique=True)
published = models.DateTimeField(verbose_name="Published", default=now())
image = models.ImageField(verbose_name="Image", upload_to="blog", null=True, blank=True)
author = models.ForeignKey(User, verbose_name="Author", on_delete=models.PROTECT)
categories = models.ManyToManyField(Category, verbose_name="Categories", related_name="get_post")
static_page = models.ManyToManyField(StaticPage, verbose_name="Página estática", related_name="get_post")
created = models.DateField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.IntegerField(choices=STATUS, default=0)
我想通过模板标签在我的主页中显示这些 URL,但我不知道如何检索 slug_staticpage slug:
<a href="{% url 'blog:post_detail' slug_staticpage=post.slug_staticpage slug=post.slug %}">
上面的语法不起作用,我只能检索帖子的slug。
有人可以帮我解决这个问题吗?非常感谢您的宝贵帮助:)
歪斜
我通过将以下内容添加到 models.py 中自己解决了这个问题
def get_absolute_url(self):
return reverse('blog:post_detail', kwargs={'slug_staticpage':self.static_page.slug_staticpage, 'slug':self.slug})
干杯!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句