2014-02-20 4 views
0

У меня есть этот вид:Джанго noreversematch для представлений на основе класса

class ProfileView(UpdateView): 
    template_name = 'home/profile.html' 
    form_class = UserForm 
    success_url = '/' 

    def get_object(self, *args, **kwargs): 
     return self.request.user 

и urls.py

urlpatterns = patterns('', 
    url(r'^$', views.HomeView.as_view(), name="index"), 
    url(r'^me/$', login_required(views.ProfileView.as_view()), name="me"), 
) 

главный urls.py

urlpatterns = patterns('', 
    # Examples: 
    url(r'^$', include('demo.apps.home.urls', namespace="home")), 
) 

Когда я пытаюсь обратить его в шаблон:

<a href="{% url 'home:me' %}">My Profile</a> 

Я получаю NoReverseMatch ошибку:

Reverse for 'me' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'$me'] 
+0

Это ваш главный 'urls.py', или он включен в' urlpatterns' другого модуля? – lanzz

+0

включен из основного, в моем проекте я определил namespace = 'home', но в этом вопросе я вынул его для простоты –

+0

Пожалуйста, добавьте содержимое вашего основного файла 'urls.py' на ваш вопрос, по крайней мере, правило где вы включаете этот файл 'urls.py'. – lanzz

ответ

1

Ваш главный urls.py включает только ваш demo.apps.home.urls за пустые URL-адреса (как это то, что соответствует ^$). Вам нужно удалить, по меньшей мере, окончательный $:

urlpatterns = patterns('', 
    # Examples: 
    url(r'^', include('demo.apps.home.urls', namespace="home")), 
) 
+0

О, вот и все! Хорошо поймал! –

+0

Я думаю, мне было бы намного легче узнать проблему, если сообщение об ошибке не включало '1 шаблон (ы): [u '$ me']' –

+0

Это сообщение об ошибке именно то, что мне было поручено если вы включаете свой 'urls.py' из другого модуля, то откуда-то должен был прибыть' ''. – lanzz

0

Если вы включаете URL с помощью пространства имен, вы должны использовать пространство имен в URL-адрес тега (или функцию обратного) тоже:

<a href="{% url 'home:me' %}">My Profile</a> 
+0

Да, я знаю об этом, пожалуйста, просмотрите мое последнее обновление, я выбрал основной urls.py для простоты в этом вопросе. –

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