我有一个像防止tastypie从更新外键字段
class MembershipResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user')
activity = fields.ForeignKey(ActivityResource, 'activity')
class Meta:
authorization=Authorization()
authentication=ApiKeyAuthentication()
现在tastypie资源,这不过效果很好,当我做了后该资源与数据
{
user: "/api/v1/user/username/",
activity: "/api/v1/activity/2/"
}
,如果我使用用户名,身份证等传递完整的用户数据,TastyPie更新auth_user并更改身份验证细节(我无法与用户登录,直到我在django shell中重置密码)
有没有简单方法,使fields.ForeignKey(ForeignResource)以防止更新ForeignResource?
编辑:
我可以通过使用特定领域水合物做到这一点。例如:
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的伪字段。但是,我认为这是一个非常普遍的问题,并且必须通过field.ForeignKey中的选项来实现这个更简单的方法。
你能不能排除在user表中特定的字段? – karthikr
我需要链接现有的用户。所以,我不能排除这个领域。我已经编辑了更多信息的问题。谢谢。 – Sundar