python - 在 Django 中保存对象时使用变量

标签 python django variables

在 Django 中,有没有一种方法可以通过使用 POST/GET 变量而不是显式命名来识别我想要编辑的对象的哪个属性?

例如,我想这样做:

def edit_user_profile(request):
    field_to_edit = request.POST.get('id')
    value = request.POST.get('value')
    user = User.objects.get(pk=request.user.id)
    user.field_to_edit = strip_tags(value);
    user.save()

而不是这个:

def edit_user_profile(request):
    value = request.POST.get('value')
    user = User.objects.get(pk=request.user.id)
    user.first_name = strip_tags(value);
    user.save()

最佳答案

Gabi 的答案正是您想要的。不过,您可以改用 setattr:

setattr(user, field_to_edit, strip_tags(value))

哪个(非常非常轻微!)更直观。

关于python - 在 Django 中保存对象时使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216259/

相关文章:

java - 如何在 Jython 和 PY4J 跨平台中使用 NLTK?

python - Django Defect-dojo:aws-prowler上传失败

variables - 如何在 Z80 程序集中创建变量?

java - Type 局部变量text的值不使用

javascript - 如何覆盖javascript对象数组中的元素

python - type(x) 是列表 vs type(x) == 列表

运行 ubuntu::latest 的 DockerFile 中的 Python3

python - scipy:spearmanr返回值的重要性(相关性)

django - 迭代字段时访问 django 表单的初始值

python - 如何在 Django 模板中显示我过滤对象的其他条目