Django Forms - Como não validar?

votos
6

Digamos que eu tenha essa forma simples:

class ContactForm(forms.Form):
    first_name = forms.CharField(required=True)
    last_name = forms.CharField(required=True)

E eu tenho um valor padrão para um campo, mas não o outro. Então, eu configurá-lo como este:

default_data = {'first_name','greg'}
form1=ContactForm(default_data)

No entanto, agora quando eu vou para exibi-lo, Django mostra um erro de validação é necessária dizendo last_name:

print form1.as_table()

Qual é a maneira correta de fazer isso? Uma vez que este não é de dados que o usuário tenha apresentado, apenas os dados que eu quero preencher previamente.

Nota: required = False não vai funcionar porque eu quero isso necessária quando o usuário envia os dados. Só quando eu estou primeiro mostrando o formulário na página, eu não vou ter um valor padrão.

Publicado 14/11/2008 em 19:04
fonte usuário
Em outras línguas...                            


3 respostas

votos
10

Construtor formulário tem initialparam que permite fornecer valores padrão para os campos.

Respondeu 14/11/2008 em 19:32
fonte usuário

votos
1

Também é possível validar manualmente e erros claros posteriores: form.errors.clear()

Respondeu 07/10/2016 em 09:29
fonte usuário

votos
0

De docs django é esta:

from django import forms
class ContactForm(forms.Form):
    subject = forms.CharField(max_length=100)
    message = forms.CharField()
    sender = forms.EmailField()
    cc_myself = forms.BooleanField(required=False)

O "required = False" deve produzir o efeito que você está depois.

Respondeu 14/11/2008 em 19:10
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more