Wie andere darauf hingewiesen haben, müssen Sie den Anmeldedecorator für jede Ansicht verwenden, für die eine Authentifizierung erforderlich ist.
Sie können es wiederverwenden, indem sie einfach wie diese Verpackung:
auth = login_required(login_url='/accounts/login/')
@auth
def index(request):
return render(request, 'post.html', {})
@auth
def new(request):
return render(request, 'post-add.html',)
Oder wenn Sie klassenbasierte wie Ansichten, würde ich es vorziehen, diese:
class AuthMixin(object):
@method_decorator(login_required(login_url='/accounts/login/'))
def dispatch(self, *args, **kwargs):
return super(AuthMixin, self).dispatch(*args, **kwargs)
class IndexView(AuthMixin, TemplateView):
template_name = 'post.html'
class AddView(AuthMixin, TemplateView):
template_name = 'post-add.html'
es zu vereinfachen, ein bisschen mehr, Sie können das Mixin von TemplateView übernehmen und es als eine einzige Basisklasse für alle Ihre für die Anmeldung erforderlichen Ansichten verwenden.
Auch wäre es eine gute Idee - mit beiden Ansatz - die Login-URL von den Einstellungen abzurufen.
Es wäre keine gute Idee, die Login-URL als String in jeder Ansicht anzugeben. Vor allem, wenn es auf den Standard django gesetzt Einstellung sowieso – Sayse