简体   繁体   English

Django:如何在Django Rest API类基本视图中保存外键对象

[英]Django : How do i save foreign key object in django rest api class base view

I 'm having Two models 我有两个模特

User & Location 用户和位置

User having foreign key of Location. 用户具有位置的外键。 So at the time of Post request how do i save the location object in serializer. 因此,在发布请求时,我如何在序列化器中保存位置对象。 I'm using classbase view. 我正在使用类库视图。

Following is my code 以下是我的代码

class UserList(ListCreateAPIView):

def create(self, request, *args, **kwargs):
        location_id = self.request.data.get("user_location_id")
        location = Location.objects.get(pk=location_id)
        serializer = self.get_serializer(data=request.data, partial=True)
        serializer.is_valid(raise_exception=True)
        self.perform_create(serializer)
        response = {
                "status" : status.HTTP_201_CREATED,
                "message" : "User Created.",
                "response" : serializer.data
            }
        return Response(response)

class UserSerializer(serializers.ModelSerializer):
        location = LocationSerializer(source='user_location_id')

        class Meta:
            model = UserInfo
            fields = ['user_id','user_firstname', 'user_lastname' ,'user_email','user_dob','user_mobileno','user_image','user_blood_group','user_profession','user_fb_id','user_random_id','location']


class LocationSerializer(serializers.ModelSerializer):
    class Meta:
        model = Location
        fields = ["location_id", "location_name"]

Use this code : 使用此代码:

    def create(self, request, args, *kwargs):
            location_id = self.request.data.get("user_location_id")
            location = Location.objects.get(pk=location_id)
            serializer = self.get_serializer(data=request.data, partial=True)
            serializer.is_valid(raise_exception=True)
            serializer.save(user_location_id=location)
            self.perform_create(serializer)
            response = {
                    "status" : status.HTTP_201_CREATED,
                    "message" : "User Created.",
                    "response" : serializer.data
                }
            return Response(response)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我如何在 Django Rest 中显示外键的值 - How do I the value for a foreign key to show up in Django Rest 如何在 Django Rest Framework 中使用外键保存 ModelSerializer - How to save a ModelSerializer with a foreign Key in Django Rest Framework 如何在 django Z65E8800B5C6800AAD896F888B2A62 中使用不同的序列化程序 class 序列化每个外键 object - How to serialize each foreign key object with different serializer class in django rest framework Django如何在表单保存上关联外键对象 - Django how to relate a foreign key object on form save 保存外键 object django forms - save foreign key object django forms Django REST Framework-如何在发布父项时创建或更新外键对象 - Django REST Framework- how can I create or update a foreign key object when POSTing parent 如何查询外键,但反向并在 Django Rest 框架中列出它们? - How do I query a Foreign key, but in reverse and list them in Django Rest Framework? 如何在 Django REST 框架序列化程序中获取超链接外键? - How do I get a hyperlinked foreign key in Django REST Framework serializer? 如何在 Django Rest 框架的 post 方法中添加外键字段 - How do I add a foreign key field in a post method for Django Rest Framework 如何在Django中基于类的视图中链接外键 - How to link foreign key in a class based view in Django
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM