django rest中的create()方法重写 models.py 序列化程序.py

django rest中的create()方法重写 models.py 序列化程序.py,django,django-rest-framework,Django,Django Rest Framework,在序列化程序和视图之后,当我浏览到input sell时,我得到了它们 如何自动将Customer对象连接到Sell,以便不需要选择customers对象?使用代币或任何想法 另外,如何覆盖customer serializer上的create()方法以从customer视图添加产品详细信息 如果您需要将客户自动传递给sell serializer。您可以将其传递到视图中的序列化程序: serializer.save(customer=request.user) 您需要从序列化程序中排除cus

在序列化程序和视图之后,当我浏览到input sell时,我得到了它们

  • 如何自动将Customer对象连接到Sell,以便不需要选择customers对象?使用代币或任何想法
  • 另外,如何覆盖customer serializer上的create()方法以从customer视图添加产品详细信息

  • 如果您需要将客户自动传递给sell serializer。您可以将其传递到视图中的序列化程序:

    serializer.save(customer=request.user)
    
    您需要从序列化程序中排除
    customer
    字段:

    class SellSerializer(serializers.ModelSerializer):
        class Meta:
            model = Sell
            exclude = ('customer',)
    
    要保存嵌套的
    产品
    ,您可以将所有新产品保存到列表中,然后将此列表传递到
    产品。add()
    方法:

    class CustomerSerializer(serializers.ModelSerializer):
        product = ProductSerializer(many=True, read_only=False)
        class Meta:
            model = Customer
            fields = '__all__'
    
        def create(self, validated_data):
            product_data = validated_data.pop('product')
            customer = Custome.objects.create(**validated_data)
            product_lits = [] 
            for product_details in product_data:                    
                product_list.append(Product.objects.create(**product_details))
            customer.product.add(*product_list)
            return customer
    

    如果您需要将客户自动传递给sell serializer。您可以将其传递到视图中的序列化程序:

    serializer.save(customer=request.user)
    
    您需要从序列化程序中排除
    customer
    字段:

    class SellSerializer(serializers.ModelSerializer):
        class Meta:
            model = Sell
            exclude = ('customer',)
    
    要保存嵌套的
    产品
    ,您可以将所有新产品保存到列表中,然后将此列表传递到
    产品。add()
    方法:

    class CustomerSerializer(serializers.ModelSerializer):
        product = ProductSerializer(many=True, read_only=False)
        class Meta:
            model = Customer
            fields = '__all__'
    
        def create(self, validated_data):
            product_data = validated_data.pop('product')
            customer = Custome.objects.create(**validated_data)
            product_lits = [] 
            for product_details in product_data:                    
                product_list.append(Product.objects.create(**product_details))
            customer.product.add(*product_list)
            return customer