1つのクエリを翻訳する必要があります。Django ORMクエリ、manytomanyは左結合で自己参照します。
モデル
class Publication_dependecy(models.Model):
def __str__(self):
return(str(self.id))
class Publication(models.Model):
def __str__(self):
return(self.name)
name = models.TextField()
class Publication_relationship(models.Model):
def __str__(self):
return(self.publication_from + '#' + self,publication + '#' + self.publication_dependecy_id)
from_publication = models.ForeignKey(Publication, related_name='from_publication', on_delete=models.CASCADE)
to_publication = models.ForeignKey(Publication, related_name='to_publication', on_delete=models.CASCADE)
publication_dependecy = models.ForeignKey(Publication_dependecy, on_delete=models.CASCADE)
SQLクエリ:
select Publication.id
from Publication
left join Publication_relationship on
Publication.id = Publication_relationship.from_publication
where
publication_dependecy.id is NULL or Publication_dependecy.id = 1
私はPublication_relationshipに含まれていないすべての出版物をretriveする必要が
または彼のpublication_dependecyがpublication_dependencyが1またはNULL
は申し訳ありませんが動作するかどうかを教えてください。 exceptions.FieldError: 'publication_relationship'というキーワードをフィールドに解決できません。選択肢はfrom_publication、id、name、related_to、relationship、to_publicationです。 – guibos
@guibos私は編集します。しかし、私が前に置いたように動作する必要があります –