Проблема с внешним ключом в моей модели отдела

Я получаю следующую ошибку Cannot assign "u'167'": "Department.organization" должен быть экземпляром "Organization".

Я перепробовал все способы отправки идентификатора организации, но безуспешно.

Метод запроса: POST URL запроса: http://127.0.0.1:8081/profiles/api/createorganisation/. Версия Django: 1.8.14 Тип исключения: ValueError Значение исключения:
Невозможно присвоить значение "u'167'": "Department.organization" должен быть экземпляром "Organization".

Exception Location: /usr/local/lib/python2.7/site-packages/django/db/models/fields/related.py in set, line 639

Это модель

class Department(models.Model):
"""
Make department codes selectable and stuff
"""
organization = models.ForeignKey(Organization, related_name="departments")
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=200, unique=True, editable=False)
users = models.ManyToManyField("CustomUser", related_name="departments", blank=True)
enter code here

Класс сериализатора

class DepartmentCreateSerializer(serializers.ModelSerializer):
organization = serializers.CharField()
name = serializers.CharField()
slug = serializers.CharField()


class Meta:
    model = Department
    fields = ('pk','organization','name','slug')

Это мой код

  org = Organization.objects.get(slug="tata5").id

    department = { 
        "organization":org,
        "name" : "finance1",
        "slug" : "finance1" ,
     }  
    
  
    logging.warning(department)
    
   
    instance = DepartmentCreateSerializer(data=department)
    instance.organization = org
    instance.is_valid(raise_exception=True)
    instance.save()
    

    # createDepartment.is_valid()
    # createDepartment.save()
    
    return Response(instance, status=status.HTTP_200_OK)

Вы используете serializers.CharField(), поэтому он пытается установить department.organization = 'id' вместо того, чтобы это был реальный экземпляр Organization, вместо него следует использовать serializers.PrimaryKeyRelatedField, который затем сериализует входной ID в экземпляр Organization.

Вернуться на верх