Je veux combiner un objet et un QuerySet dans Django.Django: combiner un objet et un QuerySet?
Mes objets sont les suivants:
class Book(models.Model):
title = models.CharField(max_length=400)
library_id = models.FloatField(max_length=200, null=True, blank=True, unique=True)
copy_id = models.FloatField(max_length=200, null=True, blank=True)
Ma requête est la suivante (je suis à la recherche un livre par ID, puis de trouver tous les livres qui sont des copies, par exemple partager un copy_id
avec le library_id
de cette livre:
primary_book = Book.objects.get(id=book_id)
book_copies = Book.objects.filter(copy_id=primary_book.library_id)
if book_copies:
books = primary_book | book_copies
else:
books = primary_book
peut-être il y a une meilleure façon d'exécuter la requête Mais au moment où je suis un peu coincé, parce que c'est la production TypeError: unsupported operand type(s) for |: 'Book' and 'QuerySet'
Merci.
encore, dans le deuxième exemple, vous devrez chercher primary_book premier - donc pas de gain ici du tout. si vous voulez être exact, le code devrait être: books = [primary_book] + list (book_copies) [l'ordre est parfois important] :) – Jerzyk
N'a pas rencontré '[listify]' avant, merci. – AP257