2017-11-20 2 views
0

Ich verwende Django 1.11.7 mit DjangoRestFramework 3.7.3Django Rastrahmen - NoReverseMatch

Ich habe eine app Mahlzeiten

Mahlzeiten/urls.py

app_name = 'meals' 

urlpatterns = format_suffix_patterns([ 
    url(r'^$', views.api_root), 
    url(r'^food/$', views.FoodList.as_view(), name='food-list'), 
    url(r'^food/(?P<pk>[0-9]+)/$', views.FoodDetail.as_view(), name='food-detail'), 
]) 

Mahlzeiten/views.py

@api_view(['GET']) 
def api_root(request, format=None): 
    return Response({ 
     'Foods': reverse('food-list', request=request, format=format), 
    }) 

Wenn ich laufe, bekomme ich den Fehler NoReverseM Atch.

Aber wenn ich app_name = 'meals' in urls.py entfernt, es funktioniert

# app_name = 'meals' 

    urlpatterns = format_suffix_patterns([ 
     url(r'^$', views.api_root), 
     url(r'^food/$', views.FoodList.as_view(), name='food-list'), 
     url(r'^food/(?P<pk>[0-9]+)/$', views.FoodDetail.as_view(), name='food-detail'), 
    ]) 

Wie kann ich es bekommen arbeiten, während app_name zu halten?

Antwort

2

Wenn Sie app_name = 'meals' verwenden, dann müssen Sie den Namen der Anwendung enthalten, wenn Sie die Urls umkehren:

reverse('meals:food-list', request=request, format=format), 
+0

kühl .. danke für die schnelle Antworten – nuttynibbles

0

Sie können es von Ihrem apps.py Datei rufen