我构建了以下模型。我认为这很容易被问到,但我真的很坚持!
模型的一部分
class Task(models.Model):
Taskdetails = models.CharField(max_length=500, null=True)
employee = models.ForeignKey("auth.User", null = True)
def __str__(self):
return str(self.id)
表格
class TaskForm (ModelForm):
class Meta:
model = Task
fields = ('Taskdetails','employee',)
部分观点
def task_new(request):
if request.method == "POST":
task_form = TaskForm(request.POST)
if task_form.is_valid():
task_form.employee = User.objects.filter(groups__name='supervisor')
因此,在我创建模型实例的模板中,在下拉菜单中,我尝试显示仅属于某个组的用户(在此示例中为组管理员)。相反,在模板中,下拉菜单显示所有用户,而不考虑我放入视图的过滤器。
总而言之,我试图在Django 1.9版中找出按群组过滤用户的方法。
同样重要的是,我使用默认的用户模型,因此未在模型中声明属性 group 。当我将以下行写入Python控制台时,它仅显示属于“主管”组的用户。
User.objects.filter(groups__name='supervisor')
答案 0 :(得分:0)
您希望在显示表单时将员工限制为某些用户(主管),对吗?
然后,我不明白为什么您在发布表单后将表单的员工字段设置为某个值。
你可能想要的是这样的:
class TaskForm(forms.ModelForm):
class Meta:
model = Task
fields = ('Taskdetails','employee',)
def __init__(self, *args,**kwargs):
super (TaskForm,self ).__init__(*args,**kwargs)
self.fields['employee'].queryset = User.objects.filter(groups__name='supervisor')