diff --git a/django.html b/django.html index 361b2eb..441fc03 100644 --- a/django.html +++ b/django.html @@ -592,6 +592,62 @@ def after_saving_product(sender, instance, created, raw, using, update_fields): +
+
+

Mais forms

+ +

+class ProductForm(forms.Form):
+    name = forms.CharField(label='Your name', max_length=40)
+                        
+ +

Para usar o name:

+ +

+def get_product(request, product_id):
+    if request.method == 'POST':
+        form = ProductForm(request)
+        if form.is_valid():
+            record = Product(name=form.cleaned_data['name'])
+            record.save()
+
+        return render(request, 
+                      'product_info.html',
+                      {'form': form})
+                        
+
+ +
+

Mais forms

+ +

cleaned_data é usado porque os campos podem ser alterados + para evitar problemas dentro do sistema.

+ +

Regras de "limpeza" estão definidas dentro dos FormFields.

+ +

+f = forms.CharField()
+f.clean(True)
+'True'
+                        
+
+ +
+

Mais forms

+ +

Em caso de erro, isso é indicado no form, para cada + campo e um dicionario global com essa + informação:

+ +

+form = ProductForm({'name': 'nome muito grande, com mais de 40 caracteres, o que é inválido'})
+f['name'].errors        # [u'Too many characters']
+
+f.errors                # {'name': [u'Too many characters']}
+                        
+
+
+

Templatetags