Voy hacer algunas cuantas criticas acerca del código.
1.- No uses tabs, usa espacios (de preferencia 4 espacios).
¿Porque? Bueno tiene varios motivos, pero el mas sobresale
es que los tabs no se ven igual en todos los editores haciendo esto
algo incomodo.
2.- No uses
; no es necesario en python.
Si, si puedes usar
; lo puedes hacer pero, es feo.
3.- En la funcion registrar_usuario, nunca haces uso del parámetro
request, entonces no necesita ese parámetro.
Código:
def registrar_usuario(request):
#creando usuario
usuario = User.objects.create_user();
return usuario
def registrar_apartamento(request):
#creando usuario
usuario = registrar_usuario(request)
#registrando apartamento
return HttpResponse('apartamento registrado')
Cita:
Iniciado por minkweb Resulta que estoy haciendo un sistema donde se debe registrar un apartamento y un usuario al mismo tiempo, he decidido dividir esto en 2 metodos registrar_usuario, registrar_apartamento.
Hasta aquí vas bien.
Cita:
Iniciado por minkweb Cuando se registra un apartamento se registra al mismo tiempo el usuario, ósea dentro de la funcion registrar_apartamento se llama a la funcion registrar_usuario, dejo un código algo pobre para hacer un ejemplo
¿Que tal si ya tengo un usuario registrado?
Cita:
Iniciado por minkweb Mas o menos así iría, así seria el funcionamiento..
Nunca programes sobre un mas o menos. Por ejemplo, no saber como o que se va a hacer es un buen ejemplo de un 'mas o menos'. En cambio si el cliente te dice mas o menos que es lo quiere entonces, tienes que llenar esos huecos para poder programar algo.
Cita:
Iniciado por minkweb la funcion registrar_usuario no devuelve un HttpResponse, pero
¿Que pasa si mas adelante necesito que lo haga?, por ejemplo, mas adelante necesito hacer un registro de usuario sin apartamento, tener otra función seria redundar el código
Entonces necesitas hacer una vista. Que llame a la función que registre el usuario.
Cita:
Iniciado por minkweb ¿La forma correcta de hacerlo es con un if, si un parámetro es True retorne HttpResponse si es False retorne un Diccionario?
No, de hecho, es probablemente una de las peores formas. Por que el tipo de retorno depende en los parámetros que reciba. Ademas que generas mas dependencias (tightly coupled).
Cita:
Iniciado por minkweb Con esto me refiero a que, en views.py están las funciones que "renderizan" los templates, pero las funciones que tienen mas lógica o procesos mas pesado donde deberían ir?
Depende del tipo lógica es donde lo colocas.
Si es lógica con respecto a los Modelos entonces debería ir en los modelos. (Ejemplo: Si tengo algún Modelo llamado Worker y quiero saber si trabajo hoy o no, puedo hacer un método llamado worked_today, o mejor si quiero saber si trabajo algún día en especifico puedo hacer una función worked que reciba como parámetro una fecha.)
Si es lógica de como se muestra el contenido entonces debería ir en los templates (Por ejemplo colorear las filas impares de un color y las pares de otro).
Lo que haces en las vistas (o views) debería ser un puente entre los templates y los modelos. Tal como lo sugiere el
modelo MVC (segun el modelo mvc, la vista seria un template y el controlador una vista).