如何使用slug生成url

2024-10-02 12:35:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我的models.py文件如下所示

from django.db import models
from django.template.defaultfilters import slugify

class Entertainmentblog(models.Model):

    slug = models.SlugField(max_length=100)
    body = models.TextField()
    posted = models.DateTimeField('date published')
    img_url0 = models.CharField(max_length=100)
    img_alt0 =  models.CharField(max_length=100)
    title1 = models.CharField(max_length=100)
    title2 = models.CharField(max_length=100)


    def save(self):
        super(Entertainmentblog, self).save()
        self.slug = '%i-%s' % ( self.id, slugify(self.slug) )
        super(Entertainmentblog, self).save()

我的应用程序urls.py文件如下所示

^{pr2}$

但这是一个错误。在

Exception Value: Reverse for 'article' with arguments '(u'what-is-happening',)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'entertainment/(?P[^\.]+),(?P\d+)/$']

我的view.py文件

^{3}$

我该如何更正?在


Tags: 文件djangofrompyimportselfimgmodels
1条回答
网友
1楼 · 发布于 2024-10-02 12:35:16

哦,你的观点有严重问题:

第一个:

class ListView(generic.ListView, slug, id)

应该是

^{pr2}$

python inheritance。在

第二:

slug和{}必须是视图的类成员,这样您就可以像这样重新定义视图:

class ListView(generic.ListView):
   template_name = 'entertainment/index.html'
   context_object_name = 'latest_article_list'
   slug = None
   id = None

def get_queryset(self):

    return Entertainmentblog.objects.order_by('-posted')[:25]

第三:

您正在将派生类命名为其父类。我不知道这样做的含意,但肯定不是一个好的做法。在

最后:

您得到的错误是因为views.DetailView.as_view()(记住DetailView是您的派生类)返回的视图没有接收您通过url传递的参数。检查你的url,我可以在错误中看到抱怨和参数(u'what-is-happening',),但是没有{}。它应该类似于,例如,(u'what-is-happening', '4')

相关问题 更多 >

    热门问题