【发布时间】:2017-11-14 12:34:03
【问题描述】:
这是我在这里的第一个实际帖子,所以请温柔。
我已经使用 Django 工作了几个星期,并且通过在此处和 Google 上搜索克服了大部分麻烦,但是在尝试允许用户编辑他们的个人资料时我似乎被卡住了。特别允许用户编辑我扩展到普通 Django 用户的字段。
我能够允许用户查看和更新常规 Django 用户中包含的所有信息,但是当表单显示“company_name”字段时,它不会自动填充当前值,也不会如果用户键入不同的公司,则保存。
Forms.py
class EditUserProfileForm(UserChangeForm):
class Meta:
model = UserProfile
fields= ('company_name','password',)
class EditUserForm(UserChangeForm):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'password')
Views.py
def edit_profile(request):
content = {}
profile = request.user.get_username()
if request.method == 'POST':
form = EditUserProfileForm (request.POST, instance=request.user)
form2 = EditUserForm (request.POST, instance=request.user)
content['form'] = form
content['form2'] = form2
if form.is_valid() and form2.is_valid():
new_user = form.save()
new_user2 = form2.save()
return render(request, 'website/view_profile.html', content)
else:
content['form.errors'] = form.errors
content['form2.errors'] = form2.errors
else:
form = EditUserProfileForm(instance=request.user)
form2 = EditUserForm(instance=request.user)
content['form']= form
content['form2'] = form2
return render(request, 'website/edit_profile.html', content)
Models.py(不确定是否有必要)
class UserProfile(models.Model):
user = models.OneToOneField(User)
verified_email = models.BooleanField(blank=True, default = False)
company_name = models.CharField(max_length=100, blank=False)
def __unicode__(self):
return self.user.username
如果可能需要任何其他代码 sn-ps 来帮助我,请告诉我。
谢谢!
【问题讨论】:
标签: python django django-forms django-views django-registration