model.UserInfo._meta.app_label #获取该类所在app的app名称 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) #拿到反向关联字段所在类名称