Django 没有足够的值来解包(预期为2,得到1)
我对一个视图中的查询集有问题。我的想法是显示所有未在程序中注册的用户,我将模型放在这里: models.pyDjango 没有足够的值来解包(预期为2,得到1),django,django-queryset,Django,Django Queryset,我对一个视图中的查询集有问题。我的想法是显示所有未在程序中注册的用户,我将模型放在这里: models.py class UCAUser(AbstractUser): dni_cif=models.CharField( max_length=9, blank=True, verbose_name="DNI/CIF" ) class InscripcionRealizada(models.Model): formulari
class UCAUser(AbstractUser):
dni_cif=models.CharField(
max_length=9,
blank=True,
verbose_name="DNI/CIF"
)
class InscripcionRealizada(models.Model):
formulario = models.ForeignKey(Formulario)
inscrito = models.ForeignKey(UCAUser,related_name="inscripciones_realizadas")
fecha_registro = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = "Inscripción realizada"
verbose_name_plural = "Inscripciones realizadas"
def __str__(self):
return "{} - {} - {}".format(self.formulario.programa, self.formulario.edicion, self.inscrito)
您可以看到UCAUser和INSCRIPCIONRealizationDA通过INSCRIPCIONRealizationDA.inscrito字段连接
view.py
class InscribirUsuariosListView(ListView):
template_name = "inscripciones/InscribirUsuariolist.html"
model = UCAUser
group_required = ['Administrador']
login_url = "auth-login"
def get_queryset(self):
qs = super(InscribirUsuariosListView, self).get_queryset()
return qs.filter(UCAUser.objects.filter(inscripciones_realizadas__formulario!=self.kwargs['formulario_id']))
def get_context_data(self, **kwargs):
context = super(InscribirUsuariosListView, self).get_context_data(**kwargs)
context['formulario_id'] = self.kwargs['formulario_id']
return context
当我尝试此操作时,会出现一个错误:
没有足够的值来解包(预期为2,得到1)
有什么想法吗?我猜错误是由于
qs.filter(UCAUser.objects.filter…
中的get\u queryset
中的qs.filter造成的,但不清楚您希望实现什么。另一个明显的问题是inscripciones\u realizadas\u\u formulario!=self.kwargs['formulario\u id']
。在Django查询集中使用!=
是不正确的。请改为使用排除
。添加到ChildG注释中,请查看以下内容: