В django, использование одного поля из одной модели в другой модели

Я пытаюсь использовать поле auth_method из модели MethoID в модели AgentDetails. Но когда я ввожу значение первичного ключа id в сериализаторе для authen_method, оно не проверяется.

Модели:

 class MethodID(models.Model):
    auth_method = models.CharField(max_length=50, default="Google")

    def __str__(self):
        return self.auth_method

class AgentDetail(MethodID):
    authen_method = models.ForeignKey(AuthMethodID, on_delete=models.CASCADE)

Serializer:

class AgentSerializer(serializers.ModelSerializer):
class Meta:
    model = AgentDetail
    fields = [
        "authen_method",
    ]

а в представлениях я использую POST запрос.

Просмотров:

    @api_view(["POST"])
def create_agent(request):
    if request.method == "POST":
        serializer = AgentSerializer(data=request.data, many=False)
        if serializer.is_valid():
            serializer.save()
            return Response(status=status.HTTP_200_OK)
        error = Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        return error

Когда вы отправляете следующий ответ в качестве тела запроса, вы должны убедиться, что экземпляр внешней модели (здесь auth_method с id 1) уже существует. Сначала создайте экземпляр модели AuthMethodID. Затем снова попытайтесь разместить дочернюю модель AgentDetail экземпляра.

   {
    "authen_method": 1
   }
Вернуться на верх