https://docs.djangoproject.com/en/dev/topics/forms/
logre en parte crear el form basico de contacto, las vista, urls y todo eso. Funciona todo menos la redireccion a la pagina cuando se envia el formulario con exito:
Mi duda principalmente esta en estos dos codigos:
Esta es la vista:
Código:
Mi duda concreta es aqui:from django.shortcuts import render from django.http import HttpResponseRedirect def contact(request): if request.method == 'POST': # If the form has been submitted... # ContactForm was defined in the previous section form = ContactForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data # ... return HttpResponseRedirect('/thanks/') # Redirect after POST else: form = ContactForm() # An unbound form return render(request, 'contact.html', { 'form': form, })
Código:
¿Como puedo preparar bien ese directorio y como podria mostrar alguna informacion en dicho directorio. Quizas lo optimo seria mostrar un mensaje en un template thanks.html, pero ya que el codigo esta asi me surgio la idea de como usar bien los directorios al momento de redireccionar.return HttpResponseRedirect('/thanks/') # Redirect after POST
Lo mismo ocurre en el template:
Código:
El action envia a un directorio contact. En resumen el tema de los directorios me tiene confundido porque hasta el momento yo solo creo el directorio de mi app y dentro el directorio de los templates y el resto solo he trabajado con vistas y templates. Pero cuando tengo que crear otro directorio, ahi ignoro que es lo que debo hacer.<form action="/contact/" method="post">{% csrf_token %} {{ form.as_p }} <input type="submit" value="Submit" /> </form>
Por ultimo, yo solo tengo creado mi formulario en forms.py y cuando yo ingreso a:
http://127.0.0.1:8000/myapp/ django me muestra automaticamente el formulario: ¿como django sabe que tiene que mostrar eso?
o mejor dicho
¿en que parte esta configurado para que me muestre eso por defecto?