я обеспечиваю JSON на вид, как так -Джанго Rest Framework - доступ к вложенный объект JSON
{
"username": "name",
"first_name": "john",
"last_name": "doe",
"email": "[email protected]",
"profile": {
"company": "abc corp"
}
}
Я затем передать его в следующем виде, чтобы получить возможность отправлять -
def post(self, request, format=None):
uuid = generate_uuid(request.data.get('username'))
data = {'username': request.data.get('username'),
'first_name': request.data.get('first_name'),
'last_name': request.data.get('last_name'),
'email': request.data.get('email'),
'company': request.data.get('profile').('company'),
'uuid': str(uuid)}
serializer = UserSerializer(data=data)
if serializer.is_valid():
print serializer.data
# serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
I 'm с трудом понимает, как структурировать data
для поддержания вложенного значения, поскольку вы можете видеть, что я также включаю поле для uuid
, которое также будет находиться в вложенном объекте profile
.
, которые затем передается в мой сериализатором здесь -
class UserSerializer(serializers.ModelSerializer):
profile = UserProfileSerializer()
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'profile')
мой взгляд, в настоящее время, поскольку это дает синтаксическую ошибку на этой линии -
'company': request.data.get('profile').('company'),
Я знаю, что это неправильно просто не знаю, как он должен быть структурирован.
Хммм ... Не думаю, что я поставил свой вопрос правильно. Я вижу, что это делает, но выглядит сглаживающим json. Я обнаружил, что просто выполнение '' profile ': request.data.get (' profile ') 'автоматически помещается в вложенную компанию, но затем, как включить« uuid »во вложенный« профиль »? – whoisearth
@whoisearth Что такое 'uuid'? У вашего UserSerializer нет поля 'uuid', и я уверен, что стандартная модель Django User также не работает. Где именно «uuid» будет спасен? – user2719875
Я генерирую uuid и сохраняю его в модели UserProfile, которую я связываю с пользователем с помощью OneToOneField. – whoisearth