У меня есть tastypie ресурс какпредотвратить tastypie от обновления ForeignKey поля
class MembershipResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user')
activity = fields.ForeignKey(ActivityResource, 'activity')
class Meta:
authorization=Authorization()
authentication=ApiKeyAuthentication()
Теперь, это хорошо работает, когда я пост к этому ресурсу с данными, как
{
user: "/api/v1/user/username/",
activity: "/api/v1/activity/2/"
}
Но, если я передайте полные данные пользователя с именем пользователя, идентификатором и т. д., TastyPie обновляет auth_user и изменяет данные аутентификации (я не могу войти в систему с пользователем до сброса пароля в оболочке django)
Есть ли простой способ сделать fields.ForeignKey (ForeignResource), чтобы предотвратить обновление ForeignResource?
EDIT:
я могу сделать это с помощью гидрата или иного параметра. Например:
def hydrate_user(self, bundle):
user = UserNameResource()
userbundle = user.build_bundle(data=bundle.data['user'], request=bundle.request)
userobj = user.full_hydrate(userbundle).obj
bundle.data['user'] = userobj
return bundle
Или даже с использованием псевдополя, называемого user_id. Но я придерживаюсь мнения, что это очень распространенная проблема, и там должен быть более простой способ сделать это с помощью опции в поле. ForeignKey.
Нельзя ли исключить определенные поля в таблице пользователей? – karthikr
Мне нужно связать существующего пользователя. Поэтому я не могу исключить поле. Я редактировал вопрос для получения дополнительной информации. Благодарю. – Sundar