Django Forme, Ne Montrant Pas De Champs De Saisie
Je reçois une réponse valide de retour lors de la demande de ma forme, mais je suis pas du champs de formulaire avec la réponse. C'est le chargement de la bouton Soumettre seulement, mais pas de champs de formulaire.
Objectif: obtenir des champs de formulaire pour charger et être en mesure de soumettre le formulaire.
J'ai un views.py:
def Registration(request):
form = NewUserRegistrationForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
form.save()
return HttpResponseRedirect("/Login/")
else:
form = NewUserRegistrationForm()
return render(request, 'VA/reuse/register.html', {
'form': form
})
forms.py
class NewUserRegistrationForm(UserCreationForm):
username = forms.CharField(required=True,max_length=30,validators=[RegexValidator('^[A-Za-z0-9]{1,30}$','e.g. must be 30 characters or less','Invalid Entry')])
email = forms.EmailField(required=True, max_length=75)
password = forms.PasswordInput()
class Meta:
model = User
fields = ("username", "email", "password1","password2")
def save(self, commit=True):
user = super(NewUserRegistrationForm, self).save(commit=False)
user.username = self.cleaned_data["username"]
user.email = self.cleaned_data["email"]
user.password = self.cleaned_data["password1"]
if commit:
user.save()
return user
un modèle
<div id="register_bubble">
<form method="post" id="userRegistration">
{% csrf_token %}
{{ NewUserRegForm.as_p }}
<input type="submit" value="Submit" />
</form> <!-- /RegistrationForm (FORM) -->
</div>
Ce que je fais mal ici? Je suis pas d'erreur en mode débogage localement soit.
Merci!
- Ne modifiez pas votre question après qu'il ait été répondu....
Vous devez vous connecter pour publier un commentaire.
Vous avez deux erreurs.
Tout d'abord, vous êtes de passage de la classe de formulaire dans le modèle de contexte, pas la forme exemple: la classe est
NewUserRegistrationForm
, mais vous avez instancié commeNewUserRegForm
, et c'est ce que vous devriez être en train de passer en tant que valeur dans le formulaire de contexte.Pour le rendre plus compliqué, le nom de la clé que vous avez donné à cette valeur est également
NewUserRegistrationForm
- mais vous êtes toujours en se référant àNewUserRegForm
dans le modèle, même s'il n'y existe pas.Ce serait d'autant plus évident si vous avez utilisé PEP8 conforme noms. Les Instances doivent être en minuscules avec un trait de soulignement: par exemple
new_user_registration_form
. Toutefois, dans ce cas, vous pourriez juste l'appelerform
, car il n'y a qu'un seul.ou, mieux:
Vous êtes en passant l'instance de formulaire pour le contexte que
'form'
, mais en l'appelant dans le modèle comme{{ NewUserRegForm.as_p }}
.Vous devez utiliser
{{ form.as_p }}
à la place.