이것은 내가 여기에 있었던이 질문에 대한 후속 조치 입니다.
이제 사용자 기본 키를 사용하고 AP 직렬 변환기에이 줄을 주석 처리 한 후 새 AP 개체를 게시 할 수 있습니다 user = UserIndexSerializer()
.
우편 배달부 요청 :
{
"user":1,
"name":"Max AP 05"
}
그러나 지금 내가 가진 문제는 초기 UserIdexSerializer가 쓸모 없게 렌더링된다는 것입니다.
이 serializer는 GET 요청에 표시 할 필드를 결정하지만 결과적으로 POST 요청에 필요한 필드를 부과합니다. 내가하려는 것은 :
이 작업을 어떻게 할 수 있습니까?
다른보기를 사용해 보았습니다. 하나는 내 모델을 나열하고 다른 하나는 새로 만들기위한 것입니다.
from rest_framework import serializers
from ..models.model_art_piece import AP
from .serializers_user import *
class APIndexSerializer(serializers.ModelSerializer):
user = UserIndexSerializer()
class Meta:
model = AP
fields = [
'id',
'user',
'name'
]
class APCreateSerializer(serializers.ModelSerializer):
user = UserIDSerializer()
class Meta:
model = AP
fields = [
'id',
'user',
'name'
]
def create(self, validated_data):
ap = AP.objects.create(**validated_data)
return ap
class APDetailsSerializer(serializers.ModelSerializer):
class Meta:
model = AP
fields = '__all__'
또한 다른 serializer를 만들려고했습니다.
from rest_framework import serializers
from ..models.model_user import User
class UserIndexSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'first_name',
'last_name'
]
class UserIDSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'id'
]
class UserDetailsSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
이것은 전혀 작동하지 않습니다. 누구든지 이것으로 나를 도울 수 있습니까?
내가 올바르게 이해했다면 당신이 원하는 것은 get 중에 중첩 된 객체를 얻는 것입니다. 내 직렬 변환기에서이 문제를 해결 한 것과 동일한 문제가 발생했습니다.
class APIndexSerializer(serializers.ModelSerializer):
class Meta:
model = AP
fields = ['id','user','name']
def to_representation(self, obj):
self.fields['user'] = UserIndexSerializer()
return super(APIndexSerializer, self).to_representation(obj)
이 ID로 생성하고 사용자의 중첩 정보를 얻을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다