0

I am trying to save a user with its respective group but it gives me an error

error: Direct assignment to the forward side of a many-to-many set is prohibited. Use groups.set() instead.

I also don't know if I make a correct call of the group column

models.py

@login_required
#@allowed_users(allowed_roles=['Administrador'])
def crearusuario(request):
data = {
    'empleado': CrearEmpleadoForm()
}
if request.method=="POST":
    if request.POST.get('rut') and request.POST.get('nombres') and request.POST.get('apellidos') and request.POST.get('correo_electronico') and request.POST.get('usuario') and request.POST.get('contrasena') and request.POST.get('activo') and request.POST.get('cargo_empleado') and request.POST.get('id_empresa') and request.POST.get('id_unida'):
        usersave= Empleado()
        usersave.rut=request.POST.get('rut')
        usersave.nombres=request.POST.get('nombres')
        usersave.apellidos=request.POST.get('apellidos')
        usersave.correo_electronico=request.POST.get('correo_electronico')
        usersave.usuario=request.POST.get('usuario')
        usersave.contrasena=make_password(request.POST.get('contrasena'))
        usersave.activo=request.POST.get('activo')
        usersave.cargo_empleado=CargoEmpleado.objects.get(pk=(request.POST.get('cargo_empleado')))
        usersave.id_empresa=Empresa.objects.get(pk=(request.POST.get('id_empresa')))
        usersave.id_unida=UnidadInterna.objects.get(pk=(request.POST.get('id_unida')))
        

        if request.method == 'POST':
            formulario = CrearEmpleadoForm(data=request.POST)
            if formulario.is_valid():
                username=request.POST.get('rut')
                password=request.POST.get('rut')
                first_name=request.POST.get('nombres')
                last_name=request.POST.get('apellidos')
                email=request.POST.get('correo_electronico')
                groups=Group.objects.get(pk=(request.POST.get('group')))
                cargo=CargoEmpleado.objects.get(pk=(request.POST.get('cargo_empleado')))
                activo=request.POST.get('activo')
                user=get_user_model().objects.create(
                    username=username,
                    password=make_password(password),
                    first_name=first_name,
                    last_name=last_name,
                    email=email,
                    cargo_empleado=cargo,
                    is_active=True,
                    groups=groups
                )
                

            
                cursor=connection.cursor()
                cursor.execute("call SP_crear_usuario('"+usersave.rut+"','"+usersave.nombres+"', '"+usersave.apellidos+"', '"+usersave.correo_electronico+"', '"+usersave.usuario+"', '"+usersave.contrasena+"', '"+usersave.activo+"', '"+str(usersave.cargo_empleado.id)+"', '"+str(usersave.id_empresa.id)+"', '"+str(usersave.id_unida.id)+"')")
                messages.success(request, "El empleado "+usersave.nombres+" se guardo correctamente ")
                return render(request, 'app/crearusuario.html', data)
            else:
                return render(request, "app/crearusuario.html", {'empleado':formulario})
else:
    return render(request, 'app/crearusuario.html', data)

help me please

  • Does this answer your question? [Direct assignment to the forward side of a many-to-many set is prohibited. Use emails\_for\_help.set() instead](https://stackoverflow.com/questions/50015204/direct-assignment-to-the-forward-side-of-a-many-to-many-set-is-prohibited-use-e) – Sunderam Dubey Sep 23 '22 at 04:01
  • Also I have answered your previous question [here](https://stackoverflow.com/a/73759835/17562044) and you haven't even replied yet. – Sunderam Dubey Sep 23 '22 at 04:02

0 Answers0