Foros del Web » Programando para Internet » Python »

django basico directorios

Estas en el tema de django basico directorios en el foro de Python en Foros del Web. Estoy revisando la documentacion oficial con respecto a los forms en django en esta pagina: https://docs.djangoproject.com/en/dev/topics/forms/ logre en parte crear el form basico de contacto, ...
  #1 (permalink)  
Antiguo 04/05/2014, 15:24
Avatar de Restart  
Fecha de Ingreso: marzo-2009
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta django basico directorios

Estoy revisando la documentacion oficial con respecto a los forms en django en esta pagina:

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:
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,
    })
Mi duda concreta es aqui:

Código:
return HttpResponseRedirect('/thanks/') # Redirect after POST
¿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.

Lo mismo ocurre en el template:

Código:
<form action="/contact/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
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.

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?
  #2 (permalink)  
Antiguo 06/05/2014, 12:34
 
Fecha de Ingreso: mayo-2014
Mensajes: 7
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: django basico directorios

Cita:
Iniciado por Restart Ver Mensaje
¿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.
Hola Restart.

Cuando trabajas con Django no se devuelve un html directamente, esos html llamados templates se interpretan antes de que el servidor los envíe al cliente y se unen a la información que tu les pasas a través de la vista en forma de diccionario (creo que tu a la vista le llamas directorio, eso me ha confundido). La conexión entre la dirección que escribes en la barra y la vista que se mostrará se define en el urls.py de la app.

Entonces si quieres enviar datos a una vista puedes hacerlo fácilmente devolviendo desde la vista un render_to_response con el template y el diccionario.
Mírate el ejemplo de la documentación:

https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

Lo último que preguntas, es evidente que has creado la vista contact en el views.py y la has configurado en el urls.py para mostrarla en la direccion /myapp/ sino no te saldría nada.

Etiquetas: basico, directorios, django, ip, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:23.