通过Django/Python中的自定义表单更新用户数据
Update user data trough custom form in Django/Python
im目前使用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("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()
非常感谢您的评论。
相关文章:
- AJAX-按钮提交以更新表单
- 当我尝试在django中更新表单时,会遇到这种类型的问题
- 创建一个动态更新表单,从 MYSQL 数据库采购
- j查询更新表单元素
- 基于另一个表单字段更新表单域
- 如何使用ajax更新表单结构
- 在传单地图上设置并拖动标记可更新表单输入字段,而无需发送
- 使用javascript自动更新表单
- 更新表单元素而不提交(Ajax+JS)
- JavaScript未更新表单操作
- 使用Ajax.BeginForm更新表单
- 如何更新表单中表示的JSON对象
- 可以在填写表单时更新表单,而无需单击提交按钮
- 如何获得'id'在更新表单中显示数据
- 在React中更新表单状态的正确方法
- PHPMYSQLAJAX(?) -如何在不调用页面刷新的情况下动态更新表单
- 用Django动态更新表单
- 使用Ajax, PHP, MYSQL更新表单
- Chrome应用程序-手动更新表单内的应用程序
- 将表单数据提交给Highcharts addPoint方法以动态更新表单