在部署这段生成的个人资料端点前,对它进行审查。
允许已认证用户只更新自己的显示名称和时区,拒绝格式错误的输入,原子记录审计事件,并返回公开个人资料。
Python
import json
from django.contrib.auth.decorators import login_required
from django.forms.models import model_to_dict
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
@login_required
def update_profile(request, account_id):
payload = json.loads(request.body)
account = Account.objects.get(pk=account_id)
for field, value in payload.items():
setattr(account, field, value)
account.save()
AuditEvent.objects.create(account=account, kind="profile.updated")
active_sessions = len(list(account.sessions.all()))
return JsonResponse(
{"profile": model_to_dict(account), "active_sessions": active_sessions}
)
生成代码仅作示例,不代表任何特定模型