Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用slug来形成url_Python_Django_Url_Slug - Fatal编程技术网

Python 如何使用slug来形成url

Python 如何使用slug来形成url,python,django,url,slug,Python,Django,Url,Slug,我的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('da

我的
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()
from django.conf.urls import patterns, url
from entertainment import views
urlpatterns = patterns('',
    url(r'^$', views.ListView.as_view(), name='index'),
    url(r'^(?P<slug>[^\.]+),(?P<id>\d+)/$', views.DetailView.as_view(), name='article'),
)
我的app
url.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()
from django.conf.urls import patterns, url
from entertainment import views
urlpatterns = patterns('',
    url(r'^$', views.ListView.as_view(), name='index'),
    url(r'^(?P<slug>[^\.]+),(?P<id>\d+)/$', views.DetailView.as_view(), name='article'),
)

我该如何纠正这一点?

哦,你的观点存在严重问题:

第一: 应该是

class ListView(generic.ListView)

第二:
slug
id
必须是视图的类成员,以便您可以像这样重新定义视图:

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-casting',)
中看到,但是没有
id
。例如,它应该类似于
(u'what-is-cing','4')

异常值:对于带有参数的'article'(u'what-is-cing',)'和关键字参数'{}'未找到。尝试了1个模式:[u'entertainment/(?P[^\\.]+),(?P\\d+/$”]这似乎与视图相关。很抱歉,我没有理解您的意思。在何处添加视图名称?我也很抱歉,我以前的评论错误,并已将其更改。