作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以从模型查询集中获取相关字段的类型吗?
让我们考虑示例模型:
class Semester(models.Model):
active = models.BooleanField(default=False, verbose_name="Active")
class Subject(models.Model):
name = models.CharField(max_length=100, verbose_name="Name")
semester = models.ForeignKey(Semester, verbose_name="Semester")
如果我在变量和查询集中有一些字段名称,我可以这样做:
querySet = Subject.objects.all()
some_field_name = 'name'
field_type = querySet.model._meta.get_field(some_field_name).get_internal_type()
有没有办法获取相关字段类型,例如:
querySet = Subject.objects.all()
some_field_name = 'semester__active'
field_type = ?
最佳答案
尝试使用get_field_by_name
:
field_type = querySet.model._meta.get_field_by_name(some_field_name).get_internal_type()
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.
"""
也可以尝试:
field = querySet.model._meta.get_field_by_name("semester")
field_type = field[0].rel.to._meta.get_field_by_name("active").get_internal_type()
关于django - 有没有办法从 Django 中的模型查询集中获取相关字段的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15703635/
我是一名优秀的程序员,十分优秀!