python - Django REST Framework hyperlink URL failing to resolve -


i trying set hyperlinking in django rest framework api, , life of me can't find out error is.

my model:

class franchise(models.model):     id = models.autofield(primary_key=true)     name = models.charfield(max_length=255)     # other fields 

my serializer

class franchiselistserializer(serializers.hyperlinkedmodelserializer):     url = serializers.hyperlinkedidentityfield(         view_name='franchise_details',         lookup_field='id',         lookup_url_kwarg='franchiseid'     )      class meta:         model = franchise         fields = ('id', 'name', 'url') 

my urls:

url(r'^db/franchise/$', views.franchise_index, name='db_franchise_index'), url(r'^db/franchise/(?p<franchiseid>[0-9]+)/$', views.franchise_details, name='db_franchise_details') 

note included url conf, api functionality goes within /api/ url

my views:

@api_view(['get']) def franchise_index(request, format=none):     franchise_list = franchise.objects.all()     serializer = franchiselistserializer(franchise_list, many=true, context={'request': request})     return response(serializer.data)  @api_view(['get']) def franchise_details(request, franchiseid, format=none):     franchise = franchise.objects.get(id=franchiseid)     serializer = franshisedetailserializer(franchise)     return response(serializer.data) 

note franshisedetailserializer seen above works fine.

summary:

  • url /api/db/franchise/ goes view franchise_index, returns data serialized franchiselistserializer.
  • url /api/db/franchise/<franchiseid>/ goes view franchise_details, returns data serialized franchisedetailserializer (works fine)

as can see, have added url field franchiselistserializer, supposed link corresponding franchise details page. before added url field, serializer returned id , name, correct , expected behaviour @ time.

when go /api/db/franchise/ now, error:

improperlyconfigured @ /api/db/franchise/ not resolve url hyperlinked relationship using view name "franchise_details". may have failed include related model in api, or incorrectly configured `lookup_field` attribute on field. 

following hint, set arguments in url field of franchiselistserializer, , far can tell, correct. have checked , double checked drf documentation, here, here , here, have found no solution.

following other similar issues on stackoverflow, tried changing view_name='franchise_details' view_name='api:franchise_details' (the name of django app relevant files in) , view_name='api:franchise_details-detail', no avail.

any , appreciated, cheers.

thanks @aks's promting, figured out. view_name name of url, not view. way read documentation (and fact view_name not url_name), seemed supposed name of view.

i had tried using view_name='db_franchise_details' (my urls name) before, did not work. after aks promted comment, tried again, , tried using view_name='api:db_franchise_details', work!


Comments

Popular posts from this blog

javascript - How to get current YouTube IDs via iMacros? -

c# - Maintaining a program folder in program files out of date? -

emulation - Android map show my location didn't work -