如何通过字段名称获取相关对象?

时间:2013-09-26 07:44:12

标签: python django django-models many-to-many django-orm

我有这些模特:

class Category(models.Model):
        name =   models.CharField(blank=True)

class Element(models.Model):
    name =   models.CharField(blank=True)
    categories = models.ManyToManyField(Category, related_name='places', blank=False, null=True)

如何按字段名称获取所有类别?

element._meta.get_field('category')返回ManyToManyField。如何从此对象获取所有类别

UPD:我需要按名称访问:我按字段名称迭代并收集相关对象。

示例:

names = []
for field_name in ['categories', 'some_another_m2m_field_name']:
    for related_object in objects._meta.get_field(field_name).all():
        names.append(related_object.name)

谢谢

1 个答案:

答案 0 :(得分:1)

我猜这个:

element._meta.get_field('categories').value_from_object(element)