I'm trying to make a list of the choices I've selected. In this case, the logged in Gestor will select the Funcionarios, and will be able to view the list of selected employees.
**型号.py**
class Equipe(models.Model):
gestor = models.ForeignKey(Gestor, on_delete=models.PROTECT, default="")
funcionario = models.ManyToManyField(User)
def __str__(self):
return self.nome
def get_funcionario(self):
return "n".join([p.funcionario for p in self.funcionario.all()])
视图.py
def listaFuncionario(request):
gest = Gestor.objects.get(user_id = request.user.id)
equipe = Equipe.objects.filter(gestor_id = gest)
equipes = gest.equipe_set.all()
func = equipes.funcionario.all()
context = {'func':func}
return render(request, 'listaFunc.html', context)
我试过了,但它似乎无法访问选定的Funcionarios表
我试过了,但给我看了
func = equipes.funcionario.all()
AttributeError: 'QuerySet' object has no attribute 'funcionario'
[02/Nov/2022 15:15:06] "GET /funcionarios HTTP/1.1" 500 65882
n
您的问题来自views.py
文件,特别是这三行:
gest = Gestor.objects.get(user_id = request.user.id)
equipes = gest.equipe_set.all()
func = equipes.funcionario.all()
当您调用返回QuerySet
对象的equipe_set.all()
方法时,equipes
变量是从gest
对象派生的。
根据您要做的操作,看起来有一个拼写错误,您打算使用equipe
(不带"s"(,因为该变量是从Equipe
类派生的,该类定义了您的funcionario
方法。
我希望这能有所帮助!