Próbuję pobrać aktualnie zalogowanego użytkownika i wyświetlić go u góry każdego widoku. Szukałem tego w każdym miejscu, ale nie mogę znaleźć prostej odpowiedzi na mój problem.Pobieranie bieżącego zalogowanego użytkownika z widokami klas Django?
Udało mi się uzyskać go w widoku formularza, ale z jakiegoś powodu nie mogę wyświetlić go w widoku normalnym. To doprowadza mnie do szału.
from django.http import HttpResponse, Http404
from django.views.generic import ListView, DetailView, FormView
from django.template import RequestContext, loader, Context
from django.core.urlresolvers import reverse
from boards.models import Links, LinksCreateForm, Category
from django.contrib.auth.models import User
def get_user(request):
current_user = request.get.user
return current_user
class LinksListView(ListView):
model = Links
class LinksDetailView(DetailView):
model = Links
class LinksCreateView(FormView):
template_name = 'boards/link_create.html'
form_class = LinksCreateForm
def form_valid(self, form):
name = form.cleaned_data['name']
description = form.cleaned_data['description']
user = self.request.user
category = Category.objects.get(id=form.cleaned_data['category'].id)
link = Links(name=name, description=description, user=user, category=category)
link.save()
self.success_url = '/boards/'
return super(LinksCreateView, self).form_valid(form)
Działa perfekcyjnie, dzięki. –
to rozwiązanie nie jest tak naprawdę django-ish. Zobacz odpowiedź sneawo na odpowiedź. – migajek
Dobrze pytanie zadawane użytkownikowi w widoku, a nie w szablonie. Odpowiedź sneawo jest doskonała inaczej. –