Python 如何列出非';t在其他表中为fk

Python 如何列出非';t在其他表中为fk,python,django,Python,Django,我有一个表用户,用户可以在学生表或教师表中 如何仅列出不在这两个表中的用户 表名是葡萄牙语的,但它们分别对应于用户、教师和学生 qs = models.Users.objects.all('') 因此,user\u listvar拥有不在另外两个表中的所有用户添加与用户、学生和教师相关的代码model@NeErAjKuMaR汉克斯补充道,但这对我的工作不起作用,我不知道你是否听说过Django autocomplete light,我用这个来做一个自动完成,用户不是老师或学生,我得到了错误。

我有一个表
用户
,用户可以在
学生
表或
教师
表中

如何仅列出不在这两个表中的用户

表名是葡萄牙语的,但它们分别对应于用户、教师和学生

qs = models.Users.objects.all('')


因此,
user\u list
var拥有不在另外两个表中的所有用户

添加与用户、学生和教师相关的代码model@NeErAjKuMaR汉克斯补充道,但这对我的工作不起作用,我不知道你是否听说过Django autocomplete light,我用这个来做一个自动完成,用户不是老师或学生,我得到了错误。不支持+:'QuerySet'和'QuerySet'NeErAj的操作数类型,我在代码中做了一些修改,成功了,我将users=list(set(professor+aluno)),改为users=chain(professor,aluno),效果很好,编辑你的帖子,让其他人可以看到你非常有用的答案,谢谢你的朋友,如果可能的话,多解释一下你的代码,我不知道你在那里做了什么。
class Usuario(AbstractBaseUser,PermissionsMixin):
    Nome = models.CharField('Nome Completo', max_length=100)
    User = models.CharField('Usuario',max_length=20, unique=True)
    email = models.EmailField('Email',unique=True)
    Data_Associacao = models.DateTimeField(default=timezone.now)
    is_active = models.BooleanField('Ativo',default=True)
    is_staff = models.BooleanField(default=False)

    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = ["Nome", "User"]
    objects = UserManager()

    def __str__(self):
        return self.Nome
    def get_short_name(self):
        return self.User

class Professor(models.Model):
    Matricula = models.CharField(primary_key=True, max_length=8)
    Usuario = models.OneToOneField(settings.AUTH_USER_MODEL)
    Data_Nascimento = models.DateField('Data de Nascimento')
    Endereco = models.TextField(max_length=200)

    def __str__(self):
        return self.Usuario.Nome


class Aluno(models.Model):
Matricula = models.CharField(primary_key=True, max_length=8)
Usuario = models.OneToOneField(settings.AUTH_USER_MODEL)
Data_Nascimento = models.DateField('Data de Nascimento')
Endereco = models.TextField(max_length=200)
Turma = models.ForeignKey(Turma)

def __str__(self):
    return self.Usuario.Nome

def clean(self, *args, **kwargs):
    try:
        super(Aluno, self).save(*args, **kwargs)
    except ValidationError:
        raise ValidationError("Não há vagas nesta turma !")
professor = Professor.objects.values_list('Usuario_id', flat=True).all()
aluno = Aluno.objects.values_list('Usuario_id', flat=True).all()

users = list(set(professor + aluno))
user_list = Usuario.objects.exclude(pk__in=users)