Django - 我怎样才能列出我在多对多中选择的选项?


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方法。

我希望这能有所帮助!

最新更新