post_new
, post_edit
, post_draft_list
, post_remove
y post_publish
para que solo usuarios que hayan ingresado puedan acceder a ellas. Django nos da algunas ayudas para hacer esto, llamados decoradores. No te preocupes por las tecnicalidades ahora; puedes leer sobre eso después. El decorador que vamos a usar está en el módulo django.contrib.auth.decorators
y es llamado login_required
.blog/views.py
y agrega estas lineas al comienzo del archivo junto con las demás importaciones:post_new
, post_edit
, post_draft_list
, post_remove
y post_publish
, (decorándolas) como a continuación:Si obtienes un formulario vacío, posiblemente sigues logeado desde el capítulo en la interfaz de administrador. Ve ahttp://127.0.0.1:8000/admin/logout/
para salir, y luegohttp://127.0.0.1:8000/post/new
de nuevo.
post_edit
, post_remove
, post_draft_list
y post_publish
también.mysite/urls.py
agrega una nueva entrada path('accounts/login/', views.login, name='login')
. El contenido del archivo debería verse similar a:blog/templates/registration
y dentro un archivo llamado login.html
.mysite/settings.py
:blog/templates/blog/base.html
y cambiarlo, así que la parte en medio de <body>
se verá así:if
en la plantilla que verifica si el usuario está autenticado para mostrar los botones de agregar y editar. De otra manera muestra el botón de ingreso.blog/templates/blog/base.html
así:mysite/urls.py
apuntando a la vista de salida (django.contrib.auth.views.logout
) así: