连接Django中的3个模型以访问其他模型d

2024-10-02 06:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个模型,在第3个模型中称为Bookauth,其中包含其他两个模型的外键,即书籍、作者。我想从某个特定作者的“书”中获取所有字段(考虑到他写了不止一本书)。我在模型中使用了manager,但失败了。在

型号

class Authors(models.Model):
    aid = models.AutoField(primary_key=True)
    aname = models.CharField(max_length=200, blank=True, null=True)
    adescription = models.TextField( blank=True, null=True)

    def __str__(self):
        return self.aname


class Books(models.Model):
    bid = models.BigIntegerField(primary_key=True)
    bname = models.CharField(max_length=200, blank=True, null=True)
    bdescription = models.TextField(blank=True, null=True)

    def __str__(self):
        return self.bname


class Bookauth(models.Model):
    bid = models.ForeignKey(Books, on_delete=models.DO_NOTHING, db_column='bid', blank=True, null=True)
    aid = models.ForeignKey(Authors, on_delete=models.DO_NOTHING, db_column='aid', blank=True, null=True)

观点不认为这是相关的

^{pr2}$

有什么建议吗?在


Tags: key模型selftruemodelmodels作者null
2条回答

考虑到您正在为许多关系使用中间表,请在作者或图书模型上使用ManyToManyField.through_fields

对于进一步查询ManytoManyORM示例也很有用

像这样:

 class Author(models.Model):
    aid = models.AutoField(primary_key=True)
    aname = models.CharField(max_length=200, blank=True, null=True)
    adescription = models.TextField( blank=True, null=True)
    books = models.ManyToManyField(Books)

    def __str__(self):
       return self.aname

相关问题 更多 >

    热门问题