Как обновить поля «Много ко многим», используя метод PUT в Django Rest Framework - PullRequest
0 голосов
/ 14 марта 2019

У меня есть следующая модель, и я хотел бы создать функцию обновления в сериализаторах.Http-метод, который я использую: PUT

class Employee(models.Model):
    """
    Model, which holds general employment information of an employee in an organization.
    """

    user = models.CharField(max_length=100, unique=True, blank=True, null=True)
    hr_number = models.CharField(verbose_name='HR number',blank=True, null=True,max_length=20, unique=True)

    department = models.ManyToManyField(Department)
    unit = models.ManyToManyField(Unit)

Пока это моя реализация метода обновления.

class EmployeeDetailSerializer(serializers.ModelSerializer):
    department = DepartmentNameSerializer(many=True)
    unit = UnitNameSerializer(many=True)
    class Meta:
        model = Employee
        fields =  ['hr_number','department','unit']

    def update(self, instance, validated_data):
        department_data = validated_data.pop('department')
        unit_data = validated_data.pop('unit')

        instance.hr_number = validated_data.get(
            'hr_number',
            instance.hr_number
        )

        department = instance.department
        for item in department_data:
            # item = dict(item)
            department.name = item.get('name',department.name)


        return instance
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...