在介面通訊裡經常遇到這種需求,需要將物件的欄位名和值均傳至介面,
user = user.objects.get(id=1)
笨方法1,沒錯,我這樣寫過:
di = {}
di['username'] = user.username
di['email'] = user.email
...... # 諸多賦值
笨方法2,沒錯,我也這樣寫過:
di = {}
all_fields = user._meta.get_all_field_names()
special_fields = ['is_active', 'is_stuff']
for i in special_fields:
try:
all_fields.remove(i)
except:
pass
for field in all_fields:
di[field] = getattr(user, field)
!!!正確的方法,翻原始碼時遇到的,最喜歡這種命名,看名字就知道了怎樣用和返回值,看到它時又感覺django暖暖的,很貼心~:
from django.forms.models import model_to_dict
di = model_to_dict(user, exclude=['is_active', 'is_stuff'])
原始碼:def model_to_dict(instance, fields=none, exclude=none):
引數instance是物件例項,fields是指定需要哪些字段,exclude是指定排除哪些字段,exclude比fields優先順序高。
陣列轉為物件
1.js裡將兩個陣列轉為物件,第乙個陣列為key,第二個為value。如 1,2,5 和 18,8,6 轉換成物件。2.js裡將多個陣列轉為物件,每個陣列只有兩個值,轉成的物件以每個陣列裡的首位為key,第二位為value。如 a,1 和 b,2 c,3 轉換成物件。只要使用underscore.j...
js轉為json物件
這個this.type.processparams是獲取到的js字串資料,下面方法將其轉化為json物件 this.paramslist eval this.type.processparams 避免unexpected token u in json at position 0 這種報錯出現 或者...
C DataTable轉為物件或物件列表
需求 從datatable中直接生成指定類的物件或物件列表 使用 datatable.tolistmodel using system using system.collections.generic using system.data using system.linq using system....