#model.userinfo._meta.model_name
#獲取該類對應表名(字串型別)
model.userinfo._meta.get_field(
'username')
#獲取該類內指定字段資訊(物件)
model.userinfo._meta.fields
#獲取該類內所有字段物件
model.userinfo._meta.get_fields
#獲取該類內所有字段資訊(物件),包含反向關聯的字段
model.userinfo._meta.many_to_many
#獲取該類內多對多字段資訊
model.userinfo._meta.get_field(
'username
').verbose_name
#獲取該類內『username』字段,verbose_name 的值
--------book:
list_filter=["
state
","publish
","authors"]
字段字串 :
"state
"字段物件 : book._meta.get_field(
"state")
字段關聯資料:
if---choice型別字段:
字段物件.choices
if---foreignkey,manytomany:
字段物件.rel.to.objects.all()
字段資訊封裝成類:
class
filterfield(object):
def__init__
(self,filter_field_name,filter_field_obj):
self.filter_field_name=filter_field_name
self.filter_field_obj=filter_field_obj
defget_data(self):
if isinstance(self.filter_field_obj,foreignkey) or
isinstance(self.filter_field_obj,manytomanyfield):
return
self.filter_field_obj.rel.to.objects.all()
elif
self.filter_field_obj.choices:
return
self.filter_field_obj.choices
else
:
pass
state=filterfield("
state
",state_obj)
obj =models.userinfo.objects.create(...)
#原始碼位置
#from django.db.models.options import options
#from django.db.models.fields.reverse_related import manytoonerel
field =obj._meta.related_objects[0]
#拿到當前記錄物件所對應的反向關聯欄位的queryset
(field[0].limit_choices_to)
#拿到對應的limit_choices_to的字典的資料
(field[0].related_name)
#拿到related_name屬性所對應的值
(field[0].field_name)
#拿到反向關聯欄位裡的關聯本表的字段
(field[0].field.model._meta.model_name)
#拿到反向關聯字段所在類名稱
Django中 Meta 部分用法
model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...
Meta 部分用法
model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...
meta的部分用法
model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...