I have a Django form with a Drop Down from User Groups which is Created from Django Admin Panel. I have 3 groups with various permissions so in this form I want to get only the Group named ‘Guest’ from the drop down and disabled.
What is the best way of doing it.
Below is what I have tried but I am getting the following errors:
ImportError: cannot import name ‘getgroups’ from ‘os’
class GuestUserForm(UserCreationForm):
email = forms.EmailField
group = forms.ModelChoiceField(queryset=Group.objects.get('Guest'),
required=True)
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2', 'group']
>Solution :
The standard User model has a field named groups, so plural. You can work with a ModelMultipleChoiceField [Django-doc] and only retain a single element: the group named Guest:
class GuestUserForm(UserCreationForm):
email = forms.EmailField()
group = forms.ModelMultipleChoiceField(
queryset=Group.objects.filter(name='Guest'),
initial=Group.objects.filter(name='Guest'),
disabled=True
)
class Meta:
model = User
fields = ['username', 'email', 'groups']