Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 没有足够的值来解包(预期为2,得到1)_Django_Django Queryset - Fatal编程技术网

Django 没有足够的值来解包(预期为2,得到1)

Django 没有足够的值来解包(预期为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

我对一个视图中的查询集有问题。我的想法是显示所有未在程序中注册的用户,我将模型放在这里:

models.py

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注释中,请查看以下内容: