Sto provando a catturare l'utente attualmente connesso e visualizzato nella parte superiore di ogni vista. Ho cercato dappertutto per questo, ma non riesco mai a trovare una risposta diretta per il mio problema.L'utente che ha effettuato il login è stato catturato con le viste di classe Django?
Sono riuscito a visualizzarlo nella vista modulo, ma per qualche motivo non riesco a visualizzarlo in una vista normale. Mi sta facendo impazzire.
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)
Perfetto, grazie. –
questa soluzione non è davvero django-ish. Vedi la risposta della risposta di sneawo. – migajek
Bene, la domanda ha richiesto l'utente nella vista, non nel modello. la risposta di sneawo è perfetta altrimenti. –