我试图将我的一个模型中的一个字段限制为可以选择作为特定组成员的所有用户。另一个字段为所有注册用户提供了一个选择。这在 shell 中工作正常:
>>> from django.contrib.auth.models import User, Group
>>> all_users = User.objects.all()
>>> all_users
<QuerySet [<User: somedude>, <User: test>, <User: testma>]>
>>> tm_users = User.objects.filter(groups__name='Testmanager')
>>> tm_users
<QuerySet [<User: somedude>, <User: testma>]>
但是如果我在模型中放入相同的代码:
class TestPlan(models.Model):
all_users = User.objects.all()
all_user_choices = ((x.username, x.get_full_name()) for x in all_users)
tm_users = User.objects.filter(groups__name='Testmanager')
tm_user_choices = ((x.username, x.get_full_name()) for x in tm_users)
tp_title = models.CharField(max_length=200, verbose_name='Title')
tp_manager = models.CharField(max_length=100, blank=True,
verbose_name='Test Manager',
choices=tm_user_choices)
tp_tester = models.CharField(max_length=100, blank=True,
verbose_name='Tester',
choices=all_user_choices)
def __str__(self):
return f'{self.tp_title}'
当我执行 User.objects.all() 时它会起作用,但是当我尝试按组过滤用户时它会失败。我真的不知道我在这里做错了什么。这是错误还是功能?
心有法竹
慕勒3428872
相关分类