我有一個模型實例,包含字段的名稱,我要打印一個變量:Django:如何從Model實例動態獲取字段的字段名稱?
field_name = "is_staff"
user = User.objects.get(pk=0)
我如何獲得通過FIELD_NAME的那場價值?我不能說user.is_staff
,因爲我不能硬編碼該字段被稱爲is_staff
。
重要的是,我需要爲此字段指定一個值,如下所示:user.is_staff = True
。
我有一個模型實例,包含字段的名稱,我要打印一個變量:Django:如何從Model實例動態獲取字段的字段名稱?
field_name = "is_staff"
user = User.objects.get(pk=0)
我如何獲得通過FIELD_NAME的那場價值?我不能說user.is_staff
,因爲我不能硬編碼該字段被稱爲is_staff
。
重要的是,我需要爲此字段指定一個值,如下所示:user.is_staff = True
。
使用可以使用`getattr'。它的工作原理是這樣的
field_name = "is_staff"
user = User.objects.get(pk=0)
field_name_val = getattr(user, field_name)
我可以爲該字段賦值嗎? 'getattr(user,field_name)= False'? –
這是一個函數調用。你不能分配任何東西。 –
@Bob分配使用'setattr(user,field_name,False)' – serg
使用['getattr'](https://docs.python.org/2/library/functions.html#getattr)。這與Django有什麼關係?另外,請仔細考慮爲什麼你這樣做。 「變量變量」幾乎總是一種代碼味道。 –
[在python中獲取動態屬性]的可能的重複(http://stackoverflow.com/questions/13595690/getting-dynamic-attribute-in-python) –