1
私は、ユーザーが「プロフィールの更新」をクリックして名、姓、ユーザー名などを編集できる機能を構築しました。それはうまく動作します。しかし、空白のフィールドではなく、以前に入力したデータで更新フォームを埋めたいと思っています。ユーザーが自分の情報を更新したいときにフォームにデータを取り込む方法は? django
これは私のフォームです:
class UpdateProfileForm(forms.ModelForm):
username = forms.CharField(required=True)
email = forms.EmailField(required=True)
first_name = forms.CharField(required=False)
last_name = forms.CharField(required=False)
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name')
def clean_email(self):
username = self.cleaned_data.get('username')
email = self.cleaned_data.get('email')
if email and User.objects.filter(email=email).exclude(username=username).count():
raise forms.ValidationError('This email address is already in use. Please supply a different email address.')
return email
def save(self, commit=True):
user = super(UpdateProfileForm, self).save(commit=False)
user.email = self.cleaned_data['email']
if commit:
user.save()
return user
そして、これはビューです:
def updateprofile(request):
args = {}
if request.method == 'POST':
update_profile_form = UpdateProfileForm(request.POST, instance=request.user)
if update_profile_form.is_valid():
update_profile_form.save()
return HttpResponseRedirect(reverse('index'))
else:
update_profile_form = UpdateProfileForm()
args['update_profile_form'] = update_profile_form
return render(request, 'updateprofile.html', args)
彼らは空白のフィールドに更新情報を入力した場合、彼らはそれらのすべてを入力する必要があると思いますので、これも重要です彼らが満たされたら、彼らは彼らが望むものを編集して提出することができます。ありがとうございました。