我在应用程序中登录了。然后,我转到列出数据库中所有用户的屏幕。当我选择一个指定的用户时,我丢失了登录的用户。那么,如何在所有应用程序中保留我的用户?
列出所有用户的My views.py。这一次,该网址显示了我的用户(http://localhost:8000/os/acesso/consultausuario/9)
$scope.sharedObj = CartProduct.sharedObj;
我的filters.py
def acesso_consultausuario(request, id=None):
instance = get_object_or_404(usuario, id=id)
queryset = usuario.objects.all().order_by('dat_criacao_usuario')
instancia_usuario_filter = usuariofilter(request.GET, queryset=queryset)
table = usuariotable(instancia_usuario_filter.qs)
RequestConfig(request, paginate={'per_page': 25}).configure(table)
paginator = Paginator(instancia_usuario_filter.qs, 5)
page = request.GET.get('page')
try:
response = paginator.page(page)
except PageNotAnInteger:
# if page is not an integer, deliver first page
response = paginator.page(1)
except EmptyPage:
# if page is out of range, deliver last pages of results
response = paginator.page(paginator.num_pages)
context = {
"instance": instance,
"filter": instancia_usuario_filter,
"response": response,
"table": table,
}
return render(request, 'consulta/consulta_usuario.html', context)
# Show an especified user that I selected before.
def acesso_consultausuariodetalhe(request, id=None):
# Instância do usuário que foi selecionado na consulta
instance = get_object_or_404(usuario, id=id)
form = statususuarioForm(request.POST or None)
if form.is_valid(): # All validation rules pass
instance_status = form.save(commit=False)
var_status = form.cleaned_data['statususuario']
instance_status = statususuario.objects.get(desc_statususuario=var_status)
# Salva o status atual na tabela logstatususuario
instance_log = logstatususuario.objects.create(usuario = instance,
statususuario = instance_status)
instance_log.save()
# Seleciona o grupo de acesso
#var_grupo = form.cleaned_data['grupo']
#instance_grupo = grupo.objects.get(desc_grupo=var_grupo)
# Atualiza o usuário com o novo status
instance.statususuario = instance_status
#instance.grupo = instance_grupo
instance.save()
context = {
"instance": instance,
"form": form,
}
return render(request, 'consultadetalhe/consulta_usuariodetalhe.html', context)
答案 0 :(得分:3)
对于登录用户,您可以使用以下代码:
from django.contrib.auth import authenticate, login
def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
# Redirect to a success page.
...
else:
# Return an 'invalid login' error message.
...
用户登录后,该用户的ID和用于身份验证的后端将保存在该用户的会话中
现在已成为访问登录用户,您只需使用 request.user
答案 1 :(得分:0)
在您的views.py中,您可以像这样访问登录的用户:
from django.contrib.auth.models import AnonymousUser
def acesso_consultausuario(request):
my_user = request.user
#If you want to know if the user is logged in
is_user_logged = my_user.is_authenticated
顺便说一句,我也是一位讲西班牙语的人,但是用英语编写所有代码是一个好习惯,这样您就可以与世界分享并获得反馈(甚至是变量名)。 希望这会有所帮助!