gpt4 book ai didi

python - 使用基于类的 View 时在 Django 中获取绝对 URL

转载 作者:太空狗 更新时间:2023-10-29 20:33:34 26 4
gpt4 key购买 nike

您好,我正在迁移我的应用程序以使用基于类的 View 而不是基于函数的 View 。在我的旧代码中,我能够通过这种方式获取与函数 View 相关的对象的绝对 URL:

class Category(models.Model):
name = models.CharField(max_length=100,unique=True)
slug = models.SlugField(unique=True)
description = models.TextField()
parent = models.ForeignKey('self',null=True,blank=True)

def get_absolute_url(self):
return reverse('blog.views.showcategory',args=[str(self.slug)])

我找不到我应该在我的获取绝对 url 函数中更改什么以获得相同的结果。

这是我新的基于类的 View

class CategoryView(ListPosts):
template_name = "postlist.html"
context_object_name="posts"
def get_queryset(self):
return Post.objects.filter(category__slug=self.kwargs['slug']).order_by('created')

谢谢!

最佳答案

您应该始终为您的 URL 命名,并引用它:

url(r'/category/(?P<slug>\w+)/$', CategoryView.as_view(), name='category_view'),

现在:

@models.permalink
def get_absolute_url(self):
return ('category_view', (), {'slug': self.slug})

请注意,我使用了永久链接装饰器,它的作用与调用 reverse 相同,但更整洁一些。

关于python - 使用基于类的 View 时在 Django 中获取绝对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14170473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com