J'ai déjà vérifié cette question Getting complement of queryset. Mais ça n'a pas marché. Il semble que ce n'est que l'extraction d'un champ dans le résultat.Je veux utiliser l'ORM django pour obtenir un complément à partir de deux tables
je les deux tableaux suivants:
tableau A
001 a
002 b
003 C
tableau B
001 a
002 b
003 c
004 d
005 e
Mon gaol est d'obtenir le complément comme ceci:
complément
004 d
005 e
Comment utiliser l'ORM pour obtenir ce résultat?
les modèles
class WordBase(models.Model):
number = models.SlugField(primary_key=True)
word = models.CharField(max_length=128)
belong = models.CharField(max_length=128)
mean = models.TextField()
example = models.TextField()
class PersonalRecord(models.Model):
user = models.ForeignKey(User)
book = models.CharField(max_length=128)
number = models.CharField(max_length=128)
begtime= models.CharField(max_length=128)
endtime = models.CharField(max_length=128,blank=True,)
lasttime = models.CharField(max_length=128,blank=True,)
times = models.IntegerField()
status = models.IntegerField()
ne fonctionne toujours pas :(ceci est mon code '
PersonalRecord_set = PersonalRecord.objects.filter (livre = current.book, id = I_D) WordBase_set = WordBase.objects.filter (= appartiennent current.book) new_words = WordBase_set.exclude (number__in = [o.number pour o dans PersonalRecord_set]) [: 1] 'Y at-il quelque chose que j'ai mal fait? – TianFuguang
Oh, vous essayez de calculer un complément entre deux modèles différents (' PersonalRecord') et WordBase') Ma réponse, et la question liée, supposent qu'il s'agit de deux ensembles du même modèle.Il est difficile de dire sans regarder vos modèles, mais je suppose que l'exclusion devrait fonctionner quand même, étant donné qu'il y a des objets à l'intérieur Essayez d'exécuter les requêtes manuellement dans le [shell django] (https: //docs.djangoproje ct.com/fr/1.8/intro/tutorial01/#playing-with-the-api) et assurez-vous que les deux ensembles contiennent des objets. – Simon
La requête génère-t-elle une erreur ou un ensemble inattendu? Est-ce que 'PersonalRecord' et' WordBase' ont tous les deux le champ numérique? – Simon