I was learninig django rest framework: authentication-and-permissions and was stumbled upon ValueError: Cannot assign "[]": "Zip.owner" must be a "User" instance. I get this error when trying to post a request
my model.py
class Zip(models.Model): owner=models.ForeignKey('auth.User',related_name='zips') zip=models.CharField(max_length=96,) state=models.CharField(max_length=96, blank=True)
serializer.py
class ZipSerializer(serializers.ModelSerializer): zip_owner = serializers.PrimaryKeyRelatedField(many=True, queryset=Zip.objects.all()) owner = serializers.ReadOnlyField(source='owner.username') class Meta: model = Zip fields = ('id','zip','state','zip_owner')
view.py
class ZipMixin(object): queryset = Zip.objects.all() serializer_class = ZipSerializer permission_calss=(IsOwnerOrReadOnly,) def pre_save(self,obj): obj.owner=self.request.user class ZipList(ZipMixin,generics.ListCreateAPIView): queryset = Zip.objects.all() serializer_class = ZipSerializer class ZipDetail(ZipMixin,generics.RetrieveUpdateDestroyAPIView): queryset = Zip.objects.all() serializer_class = ZipSerializer
Error traceback
Internal Server Error: /api/ Traceback (most recent call last): File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response response = self.process_exception_by_middleware(e, request) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view return view_func(*args, **kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/views/generic/base.py", line 68, in view return self.dispatch(request, *args, **kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/views.py", line 466, in dispatch response = self.handle_exception(exc) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/views.py", line 463, in dispatch response = handler(request, *args, **kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/generics.py", line 246, in post return self.create(request, *args, **kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/mixins.py", line 21, in create self.perform_create(serializer) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/mixins.py", line 26, in perform_create serializer.save() File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 191, in save self.instance = self.create(validated_data) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 846, in create instance = ModelClass.objects.create(**validated_data) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/db/models/manager.py", line 122, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/db/models/query.py", line 399, in create obj = self.model(**kwargs) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/db/models/base.py", line 431, in __init__ setattr(self, field.name, rel_obj) File "/home/amogh/PycharmProjects/env_1.9/local/lib/python2.7/site-packages/django/db/models/fields/related_descriptors.py", line 207, in __set__ self.field.remote_field.model._meta.object_name, ValueError: Cannot assign "[]": "Zip.owner" must be a "User" instance. [06/Mar/2016 18:59:31] "POST /api/ HTTP/1.1" 500 124621
Error SCREENSHOT Any help would be much appreciated
score:0
Change your pre_save method to:
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
Credit To: stackoverflow.com
Related Query
- Serializing ManyToMany in Django Rest Framework (2.3.5) throws ValueError
- ValueError django rest framework
- How can I enable CORS on Django REST Framework
- Django Rest Framework remove csrf
- Django Rest Framework - Could not resolve URL for hyperlinked relationship using view name "user-detail"
- Django Rest Framework - Authentication credentials were not provided
- Include intermediary (through model) in responses in Django Rest Framework
- Django Rest Framework File Upload
- How to change field name in Django REST Framework
- Django rest framework serializing many to many field
- Python Django Rest Framework UnorderedObjectListWarning
- Django Rest Framework -- no module named rest_framework
- Django REST Framework custom fields validation
- Django Rest Framework with ChoiceField
- Django rest framework nested self-referential objects
- Django Rest Framework - How to add custom field in ModelSerializer
- Django Rest Framework partial update
- Pass extra arguments to Serializer Class in Django Rest Framework
- Write only, read only fields in django rest framework
- Pass request context to serializer from Viewset in Django Rest Framework
- Django or Django Rest Framework
- Django Rest Framework Token Authentication
- Django REST framework serializer without a model
- Return the current user with Django Rest Framework
- Django REST Framework - Separate permissions per methods
- Aggregate (and other annotated) fields in Django Rest Framework serializers
- Additional field while serializing django rest framework
- Django REST Framework upload image: "The submitted data was not a file"
- How to make a PATCH request using DJANGO REST framework
- Django REST Framework serializer field required=false
More Query from same tag
- How to make Chrome respect the names of my fields and not attempt to autocomplete
- Dynamic subdomains and url paths in django project
- How to get a time widget in django forms?
- How to get inverse object relation when specified related_name
- django - annotation based on field calculations
- Django: How to nicely format an address in a template without knowing how much information is available?
- How to give "multiple" attribute to input file tag in jquery
- Fetch not giving me the response
- Django view skips checking permission classes
- How does one create a custom 403 page in Django?
- Storing user input data in HTML5
- Request type is GET when POST type is needed
- save result of get_absolute_url in django model Field
- Defining specific URL in Django
- ValueError: Cannot assign must be an instance in Django