我想在django模型中動態地獲取值
users = User.objects.all()
for user in users:
print(user.first_name) # works fine# now how to make it dynamic[/span]?
onefield = "first_name"/span>
print(user.onefield) # come error
# and for list of field name[/span](user.onefield)
fieldnames= ["first_name","last_name","email"]
for i in fieldnames:
print(user.i) # any shortcut for all value
uj5u.com熱心網友回復:
如果你想訪問的動態欄位是字串,那么使用getattr()。
fieldname = "first_name"
print(getattr(user, fieldname))
uj5u.com熱心網友回復:
對于你在問題中的做法
fieldname = "first_name"。
print(getattr(user, fieldname))
你也可以使用其他方式來獲得這些值,例如:
你可以使用其他方式來獲得這些值。
fields = User.objects.all().values('first_name')
print(fies)
這將回傳一個回傳字典的QuerySet。 你也可以使用更多的欄位
fields = User.objects.all(). values('id'/span>, 'first_name'/span>, 'last_name'/span>)
print(fies)
<QuerySet [{'id': 1, 'first_name': 'Barney', 'last_name': 'Stinson'}]>。
用于解包
qs = User.objects.all()
values = ['first_name'/span>, 'email'/span>]
qs.values(*values)
如果你只需要一個值,請使用flat=True的 values_list
。fields = User.objects.all().values_list(first_name', flat=True)
這將回傳一個帶有值的元組
。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/333351.html
標籤:
