Javascript 通过Django/Python中的自定义表单更新用户数据
我目前正在使用Python 3.4.3和Django 1.8.4,我需要从用户那里更新一些值,这是我的代码。当我尝试保存时,用户不会保存新的权限状态Javascript 通过Django/Python中的自定义表单更新用户数据,javascript,python,django,Javascript,Python,Django,我目前正在使用Python 3.4.3和Django 1.8.4,我需要从用户那里更新一些值,这是我的代码。当我尝试保存时,用户不会保存新的权限状态 def permissions(request): if request.method == 'POST': try: username = request.POST.get('usuario') permiso = request.POST.get('permiso') print("us
def permissions(request):
if request.method == 'POST':
try:
username = request.POST.get('usuario')
permiso = request.POST.get('permiso')
print("usuario seleccionado", username)
print("permisos seleccionados", permiso)
if permiso == 'Administrador':
permiso = 'ad'
print("seleccion permisos de Administrador")
if permiso == 'Planificador':
permiso = 'pl'
print("seleccion permisos de Planificador")
if permiso == 'Básico':
permiso = 'bs'
print("seleccion permisos de Básico")
usp = UserProfile(user = username, role = permiso)
print("Usuario modificado",usp)
usp.save()
return HttpResponse(
json.dumps({'redirect': "/SQM/administrar_usuarios/"}),
content_type="application/json"
)
except:
return HttpResponse(
json.dumps({'redirect': "error!"}),
content_type="application/json"
)
我用javascript通过post发送数据。
这是我的模型
class UserProfile(models.Model):
user = models.OneToOneField(User)
role = models.CharField(max_length=2, choices=TIPOS_USUARIO)
class Meta:
verbose_name='Perfil de usuario'
verbose_name_plural = 'Perfiles de usuario'
def __str__(self):
return self.user.username
这是我在html文件中的视图
<div class="col-md-4">
<label>Seleccionar Usuario</label>
<select class="form-control usuarios" id="uid" >
{% for usuarios in users%}
<option data-userdata-id="{{ usuarios.id }}">{{usuarios.user}}</option>
{%endfor%}
</select>
</div>
<div class="col-md-4">
<div class="form-group">
<label>Seleccionar Permisos</label>
<select class="form-control permisos" id="pid">
{% for roles in permisos%}
<option data-permisos-id="{{ roles }}">{{roles}}</option>
{%endfor%}
</select>
</div>
</div>
我正在尝试从1个用户更新角色状态
自定义权限的我的装饰程序
def permission_required(permission_array):
def decorator(view_function):
def wrapper(request, *args, **kwargs):
if(request.user.userprofile.role in permission_array):
return view_function(request, *args, **kwargs)
else:
return HttpResponse("<h2>No cumple permisos</h2>")
return wrapper
return decorator
谢谢你的智慧。当我尝试重命名用户权限时,我也尝试重新保存同一用户,这是不允许的,因为我的模型是一对一字段 我换这条线
usp = UserProfile(user = username, role = permiso)
这个在哪里
user = User.objects.get(username=username)
usp = UserProfile.objects.get(user = user)
usp.role = permiso
usp.save()
非常感谢您的评论。您能提供一个输入和日志的示例吗?输入非常简单,只是一个选择>选项,正如您在html代码中看到的那样,代码运行,但在尝试时,除了无法重命名用户的前置任务外。它是否打印usp的Usario modificado?您应该检查print usp.role,然后