django - DRF Update Existing Objects -


i'm new drf , python go easy on me... can roadsegment objects, cannot figure out how update existing object

i have following model:

class roadsegment(models.model):    location = models.charfield(max_length=100)    entryline = models.charfield(unique=true, max_length=100)    trafficstate = models.charfield(max_length=100) 

with following serializer:

class roadsegmentserializer(serializers.hyperlinkedmodelserializer):      class meta:         model = roadsegment         fields = ('entryline','trafficstate','location') 

and following view

class roadsegmentviewset(viewsets.modelviewset):     queryset = roadsegment.objects.all()     serializer_class = serializers.roadsegmentserializer 

my urls.py looks follows:

router.register(r'roadsegment', roadsegmentviewset, base_name='roadsegment-detail') 

get http://127.0.0.1:8000/api/v1/roadsegment/ returns

[{"entryline":"2nd","trafficstate":"main","location":"downtown"},{"entryline":"3nd","trafficstate":"low","location":"downtown"}] 

i able update existing object

patch http://127.0.0.1:8000/api/v1/roadsegment/

{"entryline":"2nd","trafficstate":"somenewvalue","location":"downtown"} 

in view, need provide following:

lookup_field -> id of record want update  lookup_url_kwarg -> kwarg in url want compare id of object 

you need define new url in urls.py file. carry lookup_url_kwarg. can done follows:

urlpatterns = patterns('',     url(r'^your_url/$', roadsegmentviewset.as_view()),     url(r'^your_url/(?p<kwarg_name_of_your_choice>\w+)/$',roadsegmentviewset.as_view()), ) 

kwarg_name_of_your_choice needs placed in viewset lookup_url_kwarg.

the request sending is:

patch http://127.0.0.1:8000/api/v1/roadsegment/object_id_to_update/

and done.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -