В django у меня есть две модели - User и UserProfile. Может существовать нулевой или один профиль для определенного пользователя. Я пытаюсь включить информацию из модели UserProfile непосредственно в UserResource.Получение от ToManyField до значений модели
Я бы хотел использовать профиль ToManyField, если он существует, для доступа к содержимому связанной модели UserProfile. Я пробовал различные вещи в дегидрате, включая self.profile.get_related_resource (self) и UserProfile.objects.get (id = ...), но я не могу найти путь от поля профиля до модель объекта. Кто-нибудь может мне помочь?
Я до сих пор новичок в Python, Django и Tastypie, поэтому, надеюсь, если я буду делать что-то ужасное, кто-то будет достаточно любезен, чтобы указать на это.
Цель состоит в том, чтобы иметь JSON, который выглядит следующим образом: { ResourceURI:/v1/пользователи/1 date_of_birth: 1 января 1980 ... и т.д. }
где date_of_birth является собственностью UserProfileResource. Мне не нужны все поля из UserProfileResource, и я не хочу, чтобы UserProfile был вложенным объектом в ответе. Я хочу, чтобы некоторые поля из UserProfileResource были полями верхнего уровня в ответе, чтобы они выглядели как часть ресурса пользователя.
class UserResource(ModelResource):
profile = fields.ToOneField('foo.api.UserProfileResource', 'user', null=True)
class Meta:
queryset = User.objects.all()
resource_name = 'users'
allowed_methods = ['get']
#etc...
class UserProfileResource(ModelResource):
date_of_birth = ...
#etc
Спасибо, но это Безразлично Не обращай внимания на мою проблему. Цель состоит в том, чтобы сделать части полей верхнего уровня UserProfileResource ответа UserResource. Я уточню в редактировании вопроса. –
Хм, возможно, я прочитал то, что вы сказали слишком быстро. Позвольте мне попробовать. –
А, ты привел меня к другой проблеме. Причина, по которой я использовал ToManyField, заключается в том, что я не могу заставить ToOneField работать, потому что FK переходит из UserProfile в User, а не наоборот. Я все еще играю с этим в другой теме в моей голове. :-) –