В 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
}