Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5个月前关闭。
我正在建立一个拥有很多公司的网站,每个公司都会有很多用户。如何按公司区分用户,以使每个公司的用户彼此隔离?
例
假设我有几个模型,例如
每个备忘录应由公司分隔,以使
有没有办法将此逻辑放在
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
5个月前关闭。
我正在建立一个拥有很多公司的网站,每个公司都会有很多用户。如何按公司区分用户,以使每个公司的用户彼此隔离?
例
假设我有几个模型,例如
User
,Company
和Memo
...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
的备忘录。我的网站将包含很多此类逻辑。如果我们在每个视图中应用过滤器,则该公司将应用于每个用户,例如:User.object.filter(company_id='1')
有没有办法将此逻辑放在
Model
或Model Manager
中,以便我们使用Fat Models and Skinny Views?还是因为用户的公司不在Memo
模型的范围内而不能这样做? 最佳答案
您应该使用ForeignKey
并在公司和用户之间创建一个Many-to-one relationships
。
为了过滤用户,您应该在查询中使用Company ForeignKey
。
我从事过许多Django项目,我认为这是您应该采用的方式。
关于python - 如何在Model Manager Django中为公司过滤Model实例? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58327229/