Локальная переменная "contacts_data", на которую ссылаются до назначения - PullRequest
0 голосов
/ 11 июля 2019

Когда я пытаюсь вызвать метод POST, он успешно создается, но я получаю сообщение об ошибке в моих сериализаторах.Что я должен сделать, чтобы добиться успеха, когда я вызываю этот метод в своем RESTful API?

Serializers.py:

def create(self, validated_data):
    if 'branches' in validated_data:
        branches_data = validated_data.pop('branches')
    if 'contacts' in validated_data:
        contacts_data = validated_data.pop('contacts')
    course = Course.objects.create(**validated_data)
    branches_list = []
    contacts_list = []
    print(contacts_data)
    print(branches_data)
    for branches_details in branches_data:
        branches_list.append(Branch.objects.create(
        course_id = course.id,
        **branches_details))
    for contacts_details in contacts_data:
        contacts_list.append(Contact.objects.create(
        course_id = course.id,
        **contacts_details))
    course.save()
    return course

1 Ответ

1 голос
/ 11 июля 2019

Я буду считать, что branches_data и contacts_data являются списками, поэтому в случае их отсутствия они должны быть объявлены как пустые списки.Будет запущен следующий код:

def create(self, validated_data):

    branches_data = validated_data.pop('branches') if 'branches' in validated_data else []

    contacts_data = validated_data.pop('contacts') if 'contacts' in validated_data else []
    course = Course.objects.create(**validated_data)
    branches_list = []
    contacts_list = []
    print(contacts_data)
    print(branches_data)
    for branches_details in branches_data:
        branches_list.append(Branch.objects.create(
        course_id = course.id,
        **branches_details))
    for contacts_details in contacts_data:
        contacts_list.append(Contact.objects.create(
        course_id = course.id,
        **contacts_details))
    course.save()
    return course
...