第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何批量插入或創(chuàng)建多個(gè)數(shù)據(jù)

如何批量插入或創(chuàng)建多個(gè)數(shù)據(jù)

蝴蝶刀刀 2022-01-18 15:35:06
根據(jù)我在下面放置的給定數(shù)據(jù)對(duì)象。我想問如何在 django 中批量插入或創(chuàng)建多個(gè)數(shù)據(jù)。我在下面提供了包括我的序列化程序和 python 代碼。我想從下面的數(shù)據(jù)對(duì)象創(chuàng)建/插入每個(gè)密碼。不用擔(dān)心其他數(shù)據(jù)。我也想用序列化器來做。我確實(shí)嘗試遍歷 data: 中的 each_employee_data 的數(shù)據(jù)。我的代碼有任何問題。謝謝你。代碼def post(self, request, format=None):        data = request.data        print("Data::" , data)        for each_employee_data in data:            each_employee_data["verification_code"] = verification_code(self)            password = hashers.make_password(each_employee_data["password"])            each_employee_data["password"] = password            print("each_employee_data", each_employee_data)            user_serializer = UserSerializer(data= each_employee_data)        if user_serializer.is_valid(raise_exception=True):                if not each_employee_data["is_applicant"]:#company                    company_serializer = CompanySerializer(data=data)                    if company_serializer.is_valid(raise_exception=True):                        user_ins = user_serializer.save(password=password)                        company_serializer.save(user=user_ins)                else:                    applicant_serializer = ApplicantSerializer(data=each_employee_data)                    if applicant_serializer.is_valid(raise_exception=True):                        user_ins = user_serializer.save(password=password)                        applicant_serializer.save(user=user_ins)                send_confirmation.delay(data)                if not user_ins.is_applicant:                    send_business_confirmation.delay(data)
查看完整描述

1 回答

?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊

當(dāng)一個(gè)序列化器被實(shí)例化并傳遞了 many=True 時(shí),一個(gè) ListSerializer 實(shí)例將被創(chuàng)建。然后序列化器類成為父 ListSerializer 的子級(jí)。ListSerializer 類提供了一次序列化和驗(yàn)證多個(gè)對(duì)象的行為。


當(dāng)您可能想要自定義 ListSerializer 行為時(shí),有一些用例。在您的情況下,您希望 ListSerializer 進(jìn)行批量更新。您需要定義一個(gè)新的自定義 ListSerializer


class CustomListSerializer(serializers.ListSerializer):

    ...


    def create(self, validated_data):

        ...


class CustomSerializer(serializers.Serializer):

    ...

    class Meta:

        list_serializer_class = CustomListSerializer

在你的情況下,它應(yīng)該是


class UserListSerializer(serializers.ListSerializer):

        ...


        def create(self, validated_data):

            user = [User(**item) for item in validated_data]

            return User.objects.bulk_create(User)




class UserSerializer(serializers.Serializer):

            ...

            class Meta:

                list_serializer_class = UserListSerializer

https://www.django-rest-framework.org/api-guide/serializers/#customizing-listserializer-behavior


查看完整回答
反對(duì) 回復(fù) 2022-01-18
  • 1 回答
  • 0 關(guān)注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)