gpt4 book ai didi

python - 如何在模型管理器 Django 中过滤公司的模型实例?

转载 作者:行者123 更新时间:2023-12-01 07:08:45 24 4
gpt4 key购买 nike

我正在建立一个网站,该网站将有许多公司,每个公司将有许多用户。如何按公司区分用户,使每个公司的用户都相互隔离?

示例

假设我有几个模型,例如 User , CompanyMemo ...

class User(models.Model):
name = models.CharField(max_length=64)
company = models.ForeignKey(Company)

class Company(models.Model):
name = models.CharField(max_length=100)

class Memo(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_time = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)

每个备忘录应按公司分隔,以便没有来自 Company A 的用户可以看到Company B的备忘录。我的网站会有很多这种类型的逻辑。如果我们在每个 View 中应用过滤器,则该公司将应用于每个用户,例如:

User.object.filter(company_id='1')

有没有办法把这个逻辑放在 Model 中或Model Manager这样我们就可以使用 Fat Models and Skinny Views ?或者我们可以不这样做,因为用户的公司超出了 Memo 的范围。型号?

最佳答案

您应该使用ForeignKey并在公司和用户之间创建多对一关系

要过滤用户,您应该在查询中使用CompanyforeignKey

我参与过许多 Django 项目,我认为这是您应该采用的方式。

关于python - 如何在模型管理器 Django 中过滤公司的模型实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58327229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com