Django类别与子类别和网址

时间:2009-09-13 21:10:15

标签: django django-models django-urls

我试图制作类别和子类别,我正在检查this models 但我有这个错误:

Truncated incorrect DOUBLE value: 'nacionales'

其中“nacionales”是父类别,我知道我的问题可能在urls.py中,但是真的,我不知道如何设置这个案例的网址...

我的model.py:

# from ...
class Categoria(models.Model):
    titulo = models.CharField(max_length=75, unique=True)
    slug = models.SlugField(max_length=200,unique=True)
    parent = models.ForeignKey('self', blank=True, null=True, related_name='child')

# functions....

my views.py:

# from ... 

def noticias_categoria(request,parent_id,child):
    categoria = get_object_or_404(Categoria,parent=parent_id,slug=child)    
    return object_list(request, queryset=categoria.noticia_set.all(), paginate_by=20,
                       template_name='categorias/categoria_list.html', 
                       extra_context={'categoria':categoria})

我的分类urls.py:

# from ...
url(r'^(?P<parent_id>[-\w]+)/(?P<child>[-\w]+)/$',
                            noticias_categoria,
                            name='noticia_detail'
                            ),

my url.py:

(r'^categorias/', include('categorias.urls')),

谢谢你们

1 个答案:

答案 0 :(得分:2)

好像你正在传递父类别的字符串值 - nacionales - 函数期望数字ID。

使用parent_id的ID,或将其重命名为parent并写下函数的第一行,如下所示:

categoria = get_object_or_404(Categoria, parent__titulo=parent, slug=child)