Meta 部分用法

2022-09-12 23:51:29 字數 3697 閱讀 2915

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

def get_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

print(field[0].limit_choices_to)

#拿到對應的limit_choices_to的字典的資料

print(field[0].related_name)

#拿到related_name屬性所對應的值

print(field[0].field_name)

#拿到反向關聯欄位裡的關聯本表的字段

print(field[0].field.model._meta.model_name)

#拿到反向關聯字段所在類名稱

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

def get_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

print(field[0].limit_choices_to)

#拿到對應的limit_choices_to的字典的資料

print(field[0].related_name)

#拿到related_name屬性所對應的值

print(field[0].field_name)

#拿到反向關聯欄位裡的關聯本表的字段

print(field[0].field.model._meta.model_name)

#拿到反向關聯字段所在類名稱

meta的部分用法

model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...

Django中 Meta 部分用法

model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...

Django中 Meta 部分用法

model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...