2014-11-28 2 views
1

Я новичок в Django, и пока я в порядке с FBV, я пытаюсь изучить CBV, и я застрял в какой-то момент. У меня есть это в urls.py:Django CBV с uuid как параметр

uuid='\w\w\w\w\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w-\w\w\w\w\w\w\w\w\w\w\w\w' 

url(r'^someroute/$', MyView.as_view(), name="my_list_view"), 
url(r'^someroute/(?P<uuid>%s)/$' % uuid, MyDetailView.as_view(), name="my_detail_view"), 

Первый работает просто отлично. Он расширяет ListView. Второй один простирается DetailView и я получаю эту ошибку, когда я нажимаю на правильно оказанную связь с UUID:

Generic detail view MyDetailView must be called with either an object pk or a slug. 

Я просмотрел сеть для решения, столкнулся с некоторыми из них, но ничего не казалось, чтобы решить мою проблему. Это MyDetailView (до сих пор я просто хочу, чтобы сделать пустой шаблон, то я буду продолжать):

class MyDetailView(DetailView): 
    model = MyModel 
    template_name = 'someroute/my_detail.html' 
    slug_filed = 'uuid' #here I tried several variations, but nothing 

Вместо slug_field, я также пытался:

pk_url_kwarg = 'uuid' 

Но тогда я получаю эта ошибка: неверный литерал для int() с базой 10: '1c149e4a-8629-464f-9c62-2742f82e6d96'

Что я делаю неправильно?

ответ

2
class MyDetailView(DetailView): 
    slug_url_kwarg = 'uuid' 
    slug_field = 'uuid' 

    model = MyModel 
    template_name = 'someroute/my_detail.html' 
+0

Я только что попробовал и получил это: Не могу разрешить ключевое слово u'slug 'в поле. Возможные варианты: (вот все поля этого класса, включая uuid) – dnmh

+0

обновленный ответ^ – madzohan

+0

К сожалению, я получаю ту же ошибку :(Код обновлен (я добавил точку останова, чтобы убедиться), но ошибка такая же. Событие I произошло по той же структуре, что и в вашем ответе. – dnmh

1

Атрибут slug_field (not slug_filed).

+0

Отличный улов :) Спасибо! Это сработало. – dnmh

Смежные вопросы