2014-12-03 27 views
5

Trong drf3 bây giờ bạn có thể thực hiện một serializer lồng nhau có thể ghi bằng cách ghi đè các phương pháp tạo() và xử lý validated_data mìnhtạo nhiều đối tượng sử dụng serializers lồng nhau ghi trong khuôn khổ còn lại django 3

def create(self, validated_data): 
    profile_data = validated_data.pop('profile') 
    user = User.objects.create(**validated_data) 
    Profile.objects.create(user=user, **profile_data) 
    return user 

gì nếu hồ sơ là một để nhiều mối quan hệ và validated_data thực sự chứa nhiều cấu hình. Làm cách nào để tạo nhiều đối tượng liên quan trong khi tạo?

+0

Nếu bạn biết điều đó thực sự chứa dữ liệu bạn nghĩ rằng bạn chỉ có thể tạo ra chúng trong một vòng lặp – krs

+0

bạn có thể cung cấp một ví dụ? – matteok

+1

tôi không biết làm thế nào dữ liệu được đưa ra như tôi havent nâng cấp lên 3 được nêu ra, nhưng nếu nó là một danh sách thì một vòng lặp bình thường sẽ làm công việc – krs

Trả lời

5

Theo đề nghị của KRS câu trả lời như sau:

def create(self, validated_data): 
    profiles_data = validated_data.pop('profiles') 
    user = User.objects.create(**validated_data) 
    for profile_data in profiles_data: 
     profile = Profile.objects.create(user=user,**profile_data) 
    return user 
Các vấn đề liên quan