当两者都是主键时,如何在Django模型中指示ManyToMany关系



我正在创建Django模型,在指定ManyToMany关系以便在数据库中创建联接表时遇到问题。我想加入的两个模型看起来是这样的:

class Host(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio_information = models.ForeignKey(Bio, on_delete=models.CASCADE)
class Team(models.Model):
name = models.CharField(max_length=50)
creator = models.ForeignKey(Host, on_delete=models.CASCADE)

它们需要在主键上联接,这样我就得到了一个联接表,它看起来像这样,表名为host_team:

id int [PK]
host_id int 
team_id int

由于在创建模型时不包括ID,我如何指定MtoM关系并让django创建联接表?

不能将join与M2M关系一起使用。

如果您使用prefetch_related。它将进行额外的查询并将结果存储在缓存中。

在这种情况下,您的代码将如下所示:

queryset = Team.objects.all().prefetch_related("creator")

您可以在此处阅读更多信息:https://docs.djangoproject.com/en/4.1/ref/models/querysets/#prefetch-相关

相关内容

  • 没有找到相关文章

最新更新