我有一個像防止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