Django中的多对多表,不使用manytomanyfield

2024-04-18 18:08:38 发布

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

而不是使用型号.manytomydjango油田

我只是用一堆外键建立了一个中介字段。你知道吗

有没有什么原因让这不起作用。我想不出什么,但为什么不看看你们中有没有人也试过。你知道吗

class Authorization(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE,
                             )
    permission = models.ForeignKey( 'venueadmin.Permissions', blank=True, null=True)

    #venue = models.ForeignKey(venue)   <-- commented out cause I haven't made the model its referencing yet.

Tags: authtruemodelsettingsmodels原因外键class
1条回答
网友
1楼 · 发布于 2024-04-18 18:08:38

这就是大量的关系,除了很少考虑的事情。你知道吗

首先,您可能想检查Django如何生成ManyToManyFieldhere。它几乎和你在这里做的一样。你知道吗

现在,在开始使用单独的模型之前,请考虑以下事项:

  • 缺少数据库约束。这意味着没有验证 以Authorization表中的内容为例- 重复行
  • 没有索引,这意味着搜索将变得缓慢,一旦授权增长。有趣的是我没有在Django找到它,也许没人在乎?两列表可能不那么重要
  • 没有理由为没有permissions的用户保留授权记录。将permissions设置为NULL的原因是什么?它是否为数据库管理员将来提供了有用的信息?你知道吗

相关问题 更多 >