POST/GET gönderiminin giriş değerlerini geçmeden önce cd = form.cleaned_data ayar noktası nedir? Bunun anlamı nedir ve neden gereklidir (eğer öyleyse)?django formundaki forms_data öğelerini kullanma
cevap
O bunu yaparsanız bir bağlı formda() .is_valid çağırmadan önce, bir AttributeError yükseltecektir girdi değerlerini geçirmeden önce bir formun .cleaned_data özellik kullanmak gerekli değildir ya Bağlanmamış bir formda erişmeye çalışırsanız, read more about Form.cleaned_data.
Ayrıca, üzerinde lojik senin görünümlerinde
, form kullanarak gereken geleneksel bir şekilde saklanması amacıyla bir formu yönteminde formun veri soyut kullanımı için iyi bir fikir genellikle böyle olduğunu:
formunuzdakiif request.method == 'POST':
form = MyForm(request.POST) # Pass the resuest's POST/GET data
if form.is_valid(): # invoke .is_valid
form.process() # look how I don't access .cleaned_data in the view
: Eğer aramadan önce `cleaned_data` erişmeye çalışırsanız Django bir AttributeError yükseltecek söz için
class MyForm(forms.Form):
my_field = forms.CharField()
def process(self):
# Assumes .cleaned_data exists because this method is always invoked after .is_valid(), otherwise will raise AttributeError
cd = self.cleaned_data
# do something interesting with your data in cd
# At this point, .cleaned_data has been used _after_ passing the POST/GET as form's data
is_valid() öğesi bir kez True değerini döndürdüğünde, form gönderiminizin güvenliğini, formunuz tarafından tanımlanan doğrulama kurallarına uygun olduğu bilgisiyle işleyebilirsiniz. Request.POST doğrudan bu noktada erişebilir iken, form.cleaned_data erişmek için daha iyidir. Bu veriler sadece doğrulanmış değil, aynı zamanda sizin için ilgili Python türlerine de dönüştürülecektir.
+1' is_valid() 'Eğlenceli gerçek: hala bu 6 y yapar kulaklar daha sonra ... – pentix
@pentix Yip. Sizce belki de FormNotValidated hatası kullanmış olabilirler? – Derek