擅长:python、mysql、java
<p>我不得不实施肮脏的黑客仍然没有很好的测试,所以请小心:<br/>
<code>ProfileResource</code>方法:</p>
<pre><code>def obj_update(self, bundle, **kwargs):
"""
Additional operations for changing username.
Changes username in database.
"""
bundle = super(ProfileResource, self).obj_update(bundle, **kwargs)
username, api_key = self.get_credentials(bundle.request)
profile = Profile.get_logged(username, api_key)
if profile:
try:
if bundle.data['username'] and bundle.data['username'] != profile.user.username:
try:
User.objects.get(username=bundle.data['username'])
logging.warning('Username %s Already exists cannot update.' % bundle.data['username'])
except User.DoesNotExist:
profile.user.username = bundle.data['username']
profile.user.save()
except KeyError:
pass
return bundle
</code></pre>
<p>我知道这不是解决办法。另一个选择是直接使用<code>UserResource</code>。在</p>