1
Kullanıcıların adı, soyadı, kullanıcı adı ..etc. İyi çalışıyor. Ancak, güncelleme formunun boş alanlara sahip olmak yerine daha önce girdiği verilerle doldurulmasını istiyorum. Kullanıcı bilgileri güncellemek istediğinde formda veri nasıl çekilir? django
Bu
benim biçimidir: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
Ve bu görünümler geçerli:
onlar boş alanlara bilgi güncellenen girin eğer hepsini girmek zorunda kalacak, çünkü bu da önemlidirdef 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)
fakat eğer doldurulmuşlarsa, istediklerini düzenleyebilir ve gönderebilirler. Teşekkür ederim.