Vincular Usuário

25 views
Skip to first unread message

Solange Carvalho

unread,
Jun 28, 2022, 10:40:06 AMJun 28
to Django users
Trabalho com multi-empresas e gostaria de saber como vincular o cadastro de uma empresa a um usuário.
Exemplo:
Um usuário só acessa os dados de uma empresa e tudo vinculado a ela.
Um usuário pode selecionar qual empresa acessar ou todas.

Como programar?

Lauro Cesar de Oliveira

unread,
Jun 30, 2022, 6:01:13 PMJun 30
to django...@googlegroups.com
Olá Solange,

Várias formas de se fazer, tudo depende, esse é um bom tópico para
minha próxima live, sábado às 20h.

Mas, basicamente vc precisa associar o user a empresa e fazer a query
baseada nessa associação, usando por exemplo ForeignKey:


from django.db import models
from django.conf import settings

class Empresa(models.Model):
usuario_dono =
models.ForeignKey(settings.AUTH_USER_MODEL,null=True, blank=True,
on_delete=models.SET_NULL,related_name="minhas_empresas_associadas",related_query_name="minhas_empresas")


Então você pode filtrar as empresas usando algo como:

empresas = Empresa.objects.filter(usuario_dono=request.user) #Todas as empresas

empresas = Empresa.objects.filter(usuario_dono=request.user,
id__in=[2,6,8]) #Todas as empresas onde o id esteja na lista [2,6,8]

Ou usando a relacao com o usuario:

empresas = request.user.minhas_empresas_associadas.filter(id__in=[2,6,8])
#Todas as empresas onde o id esteja na lista [2,6,8]
empresas = request.user.minhas_empresas_associadas.all() #Todas as
empresas associadas.

Obviamente, é um exemplo básico, mas te dá uma idéia de por onde
começar a análise das opções.

Sábado vou criar um exemplo mais completo, fazendo o filtro automático
no admin baseado na empresa ou empresas selecionadas.

Até, e sucesso.


Lauro Cesar de Oliveira
Hack to learn not learn to hack.

Django e Python channel
https://www.youtube.com/user/olarva2008
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/247e96f2-a682-478b-906b-859d8fad99acn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages