我正在创建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-相关