我是Django的新手,并尝试创建一个userprofile以及通过django-registration模块注册的任何用户。这是我的UserProfile模块:
class UserProfile(models.Model):
username = models.OneToOneField(User)
bio = models.CharField(max_length=500)
location = models.CharField(max_length=20)
User.profile = property(lambda u:UserProfile.objects.get_or_create(username=u)[0])
def __unicode__(self):
return self.user.username
我在settings.py
中也有这个AUTH_PROFILE_MODULE = 'userprofile.UserProfile'
创建用户后,他们会参考此视图来填写他们的个人资料表单:
def add_profile(request):
if request.method == 'POST':
form = UserProfileForm(request.POST,request.FILES)
if form.is_valid():
f = form.save(commit = False)
f.username_id= request.user.id
form.save()
return render_to_response('userprofile/ok.html',
context_instance=RequestContext(request))
else:
print form.errors
else:
form = UserProfileForm()
return render_to_response('userprofile/add_profile.html', {'form': form},
context_instance=RequestContext(request))
但是当他们提交表单时,他们会收到此错误:
TypeError at /profile/add/sara/
add_profile() got an unexpected keyword argument 'username'
我知道在SO上有很多类似的问题,我尝试了许多建议,但没有一个对我有用。非常感谢您的提示