django预先填充的字段用连字符打破

时间:2011-03-08 11:05:22

标签: django admin slug

我开始在我的管理员中添加prepopulated_fields选项,并开始发生有趣的事情 我有这个模型

class Pelicula(models.Model):
    nombre = models.CharField(max_length=50)
    slug = models.SlugField(max_length= 15, unique= True, help_text = "Nombre corto para la URL", primary_key= True)

,这在admin.py

class PeliculaAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug' : ['nombre']}
没有什么花哨的,它遍布整个地方 但是只要我在object_detail通用视图中使用这个slug,slug只有在它只有一个单词时才会起作用。 所以,如果我有这个观点

def detalle_pelicula(request, pelicula):
    return list_detail.object_detail(
        request,
        queryset = Pelicula.objects.all(),
        slug = pelicula,
        template_name='sections/detalle_pelicula.html',
        template_object_name = 'pelicula',
        extra_context = extra_context,
        )

如果原始名称中有任何空格,我会得到“No Page匹配给定查询”。错误。因此详细/测试将起作用,但详细/测试页面不会 我有点难过

1 个答案:

答案 0 :(得分:3)

我猜你有你的urlconf设置解析你的slug使用\ w +尝试使用[-A-Za-z0-9 _] +

# e.g. in urls.py

url(r'del/(?P<slug>[-A-Za-z0-9_]+)/$',   'person_delete',  name='person_delete'),