Here I made a form for taking the group name from the user and then tried to create group name with that name entered by user but it is not giving me the expected result.It is neither throwing any error nor saving the data in the database.
When i used group_name = request.POST['name']
instead of cleaned_data
it throws:
django.utils.datastructures.MultiValueDictKeyError: 'name'
What I am doing wrong here ?
forms.py
class AddUserGroupForm(forms.Form):
name = forms.CharField(max_length=255)
views.py
def add_user_groups(request):
form = AddUserGroupForm()
#group_name = request.POST['name']
#print(group_name,'group_name')
if form.is_valid():
group_name = form.cleaned_data['name']
permissions = request.POST.getlist('user_permissions')
new_group = Group.objects.create(name=group_name)
new_group.permissions.add(permissions)
messages.success(request,'New group added.')
return redirect('organization:view_groups')
return render(request,'organization/add_user_groups.html',{'user_permissions':user_permissions,'form':form})
template
<form action="{% url 'organization:add_user_group' %}" method="post">
{% csrf_token %}
<label> Group Name : </label>
<input type="text" class="form-control required" placeholder="Enter
group name" name="name">
<label>Permissions:</label>
{% for permission in user_permissions %}
<input name="user_permissions" type="checkbox" id="permission-{{permission.id}}"
value="{{permission.id}}">
<label for="permission-{{permission.id}}"> {{permission.name}}</label>
</div>
{% endfor %}
<button type="submit" class="btn btn-info">Submit</button>
</div>
</form>