您可以使用模型的
_meta属性来获取字段对象,并且可以从字段中获取关系以及更多其他信息,例如,考虑一个雇员表,该雇员表具有一个部门表的外键
In [1]: from django.db import modelsIn [2]: model = models.get_model('timeapp', 'Employee')In [3]: dep_field = model._meta.get_field_by_name('department')In [4]: dep_field[0].target_fieldOut[4]: 'id'In [5]: dep_field[0].related_modelOut[5]: <class 'timesite.timeapp.models.Department'>
来自django / db / models / options.py
def get_field_by_name(self, name): """ Returns the (field_object, model, direct, m2m), where field_object is the Field instance for the given name, model is the model containing this field (None for local fields), direct is True if the field exists on this model, and m2m is True for many-to-many relations. When 'direct' is False, 'field_object' is the corresponding RelatedObject for this field (since the field doesn't have an instance associated with it). Uses a cache internally, so after the first access, this is very fast. """