在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()
答案 0 :(得分:3)
Gabi的答案正是你想要的。您可以使用setattr
代替:
setattr(user, field_to_edit, strip_tags(value))
这是(非常非常轻微!)更直观。
答案 1 :(得分:0)
您可以使用getattr
功能:
getattr(user, field_to_edit) = strip_tags(value)