2016-03-19 16 views
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 önemlidir
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) 

fakat eğer doldurulmuşlarsa, istediklerini düzenleyebilir ve gönderebilirler. Teşekkür ederim.

cevap

2

İkinci UpdateProfileForm() aramanızdaki örnek parametresini unutmuşsunuzdur. Olması gereken:

else: 
    update_profile_form = UpdateProfileFrom(instance=request.user) 
İlgili konular