Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

281
Visualizações
¿Cómo consultar todos los objetos del modelo excepto los que ya están en otro modelo?

Estoy trabajando en una aplicación Django. Tengo 2 modelos relevantes para la pregunta:

 class Quiz(models.Model): """ Represents a Quiz for a `Module`. It will have a `name` """ name = models.CharField(max_length=200) user = models.ManyToManyField('cme.Bussines', related_name='quizes', through='UserQuiz', through_fields=('quiz', 'user')) def __str__(self) -> str: return f'{self.name}' class Trio(models.Model): """ Represents the content for a Module. Each `Trio` will have, as it's name says, 3 content fields, plus the `Module` it belongs to. It will have a `file`, a `video` (which will be a URL to a YT video), and a `quiz` (which will be key to `Quiz`) """ file = models.FileField(upload_to='legacy/classes/', max_length=254) quiz = models.ForeignKey(Quiz, on_delete=models.SET_NULL, related_name='trios', null=True, blank=True) video = models.URLField() module = models.ForeignKey(Module, on_delete=models.CASCADE, related_name='trios') user = models.ManyToManyField('cme.Bussines', related_name='trios', through='UserTrio', through_fields=('trio', 'user')) def __str__(self) -> str: return f'Trio {self.id} de {self.module}'

Quiero consultar todos los Quiz que no están en el campo de quiz de Trio . ¿Hay alguna forma de hacer esto?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Sí, puedes consultar con:

 Quiz.objects.filter( trios=None )

Esto hará una UNIÓN Quiz IZQUIERDA y solo conservará las Pruebas para las que no hay un objeto Trio relacionado.

over 4 years ago · Santiago Trujillo Relatório

0

Puede consultar todos los objetos Quiz cuya id se ve en cualquier objeto Trio :

 Quiz.objects.exclude(id__in=Trio.objects.values("quiz_id"))

También puede refinar más la consulta. Por ejemplo, supongamos que desea que todos los objetos Quiz no se refieran a un subconjunto específico de objetos Trio , puede hacerlo agregando un filtro en su expresión de exclusión, algo como:

 Quiz.objects.exclude(id__in=Trio.objects.filter(...).values("quiz_id"))
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda