Python 如何基于组(参数)过滤models.py中的外键
我是新来的。 我刚刚启动了一个使用Python/Django的项目,这是我想在工作中展示的想法 我有一个django项目和应用程序已经在运行 因为我才刚开始。我非常依赖默认的Django管理面板 我的问题是: 我在models.py上这门课Python 如何基于组(参数)过滤models.py中的外键,python,django,django-models,foreign-keys,django-admin,Python,Django,Django Models,Foreign Keys,Django Admin,我是新来的。 我刚刚启动了一个使用Python/Django的项目,这是我想在工作中展示的想法 我有一个django项目和应用程序已经在运行 因为我才刚开始。我非常依赖默认的Django管理面板 我的问题是: 我在models.py上这门课 class Sales(models.Model): order_number = models.CharField(max_length=50) order_date = models.DateField('digitado em', de
class Sales(models.Model):
order_number = models.CharField(max_length=50)
order_date = models.DateField('digitado em', default=date.today)
Sales_User = models.ForeignKey(User, on_delete=models.SET_DEFAULT)
现在在我的用户数据库中,我有50个用户。但其中只有15人是销售人员(都在“销售”组中)
当我要创建订单并且必须选择销售用户时
下拉列表显示所有50个用户。
这是按用户所在的组筛选这些用户的一种方法吗?或者将下拉列表替换为这些弹出窗口的on,然后搜索并选择
只要我能真正做到,我愿意尝试不同的方法。:-)
谢谢大家抽出时间
编辑: 我在这里贴了几个小时后,终于收到了 从那以后我做的第一件事(我不认为我有什么影响,但它是原始问题的一个变量)是用 身份验证用户模型 再说一遍。不确定它是否有任何影响 然后 我尝试在用户扩展模型中创建另一个表。 你知道。所以我可以在用户表单中添加另一个字段 桌子上只有一张桌子 用户类型=models.CharField(最大长度=30) 我去了管理面板,添加了一些类似的内容 销售额 工人 合伙人 然后 我去了一个用户(任何用户)设置e选择了一个字段(在本例中为Sales) 毕竟。我仍然没有做任何事情来过滤主键 但是在查看django文件之后(更确切地说,就是写主键的文件),我发现选项limit_choices_to={'':''} 我试过了,就是这样。正是我想要的 所以现在。看起来像这样
class Sales(models.Model):
order_number = models.CharField(max_length=50)
order_date = models.DateField('digitado em', default=date.today)
Sales_User = models.ForeignKey(settings.AUTH_USER_MODEL, limit_choices_to={'types_of_users' : '1'}, on_delete=models.SET_DEFAULT)
在本例中,“1”是我设置给用户的表中选项的键
如果您仍然希望按组(一)进行筛选,而不是创建表,只需将“用户类型”替换为“组”
希望任何需要的人都能理解我是如何解释的
快乐编码。查看此线程:并通过Sales\u User\u group
过滤而不是name
(或用户的group
字段)