You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django新手求教:如何在表单中从特定组选择titulaire用户?

解决方法

你的问题出在代码里删除了titulaire字段,导致表单无法渲染这个选择框。正确的做法是保留字段,然后修改它的查询集,只返回'Profs'组的用户。

修改后的表单代码如下:

from django import forms
from .models import Classe
from django.contrib.auth.models import User

class ModifyClasse(forms.ModelForm):
    class Meta:
        model = Classe
        fields = ['title', 'year', 'titulaire', 'cotitulaire']

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # 过滤出属于'Profs'组的用户,作为titulaire字段的可选选项
        self.fields['titulaire'].queryset = User.objects.filter(groups__name='Profs')

关键说明:

  • 确保Meta类的fields列表包含titulaire,这样表单才会生成该字段的输入控件。
  • 在__init__方法中,先调用父类的初始化逻辑,再修改titulaire字段的queryset属性,限制可选范围。
  • 如果需要排除禁用的用户,可以在过滤条件里加上is_active=True:
    self.fields['titulaire'].queryset = User.objects.filter(groups__name='Profs', is_active=True)
    

内容的提问来源于stack exchange,提问作者bonarn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:43:17