问题描述
我是新来的。 我刚刚使用 Python/Django 盯着一个项目,这是我想在我的工作中展示的一个想法。
我有一个 django 项目和应用程序已经在运行 因为我刚刚开始。我非常依赖默认的 Django 管理面板。
我的问题是: 我在models.py中有这个类
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 个用户。 是否可以通过他们所在的组过滤这些用户?或者将下拉列表替换为那些弹出窗口,然后搜索并选择。
我愿意尝试不同的方法,只要我能真正完成它们。 :-)
谢谢大家的时间。
编辑:
我在这里发布了几个小时后,我终于明白了。
从那以后我做的第一件事(不认为我有影响,但它是原始问题的一个变量)是用
扩展 Django 用户系统AUTH_USER_MODEL
再说一遍。不知道有没有影响。
然后
我尝试在用户扩展模型中创建另一个表。 你知道。所以我可以在用户表单中添加另一个字段
表只有
user_type = models.CharField(max_length=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)
如果您仍然想按组(一个)过滤而不是创建表,只需将 'types_of_users' 替换为 'groups'
希望有需要的人能明白我是怎么解释的。
快乐编码。
解决方法
查看此线程:filter foreignkey field in django admin 而不是 name
过滤器 Sales_User__group
(或任何用户的 group
字段)