Je me demande mentalement comment faire cela dans Django, en espérant que vous puissiez m'aider.Django: Filtrer des objets avec les résultats d'une autre table?
J'ai une table de galeries que je suis le filtrage par type:
public_galleries = models.Gallery.objects.filter(type = 2).filter(root_gallery__isnull = True)
mais je veux aussi voir si la galerie n'existe pas dans la table UserGallery pour un utilisateur spécifique. J'ai cette liste de galeries pour l'utilisateur:
user_galleries = models.UserGallery.objects.select_related().filter(clientuser=request.user.id).filter(gallery__root_gallery__isnull = True)
Note ** Tout a commencé à utiliser Django pour un projet réel, de sorte que toute amélioration ou l'autre de ces déclarations sont également appréciés.
Edition - Les modèles:
class Gallery(models.Model):
"""Gallery model"""
name = models.CharField(u"Gallery name", max_length=120)
type = models.IntegerField(default=0, choices=TYPE_CHOICES)
root_gallery = models.ForeignKey("self", blank=True, null=True)
""" Other Fields"""
class UserGallery(models.Model):
"""Model to link Gallery and ClientUser"""
gallery = models.ForeignKey(Gallery)
clientuser = models.ForeignKey(ClientUser)
owner = models.BooleanField(default=False)
Il est préférable d'inclure les modèles pour toute question Django qui implique de les interroger. –