2013-09-26 3 views
0

У меня есть эти модели:Как получить связанные объекты по имени поля?

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: Мне нужен доступ по имени: I итерируется именами полей и собирает связанные объекты.

Пример:

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) 

спасибо

+0

'element.categories.all()'? –

+0

Нет. Мне нужен доступ по имени: я повторял имена полей и собирал связанные объекты. – Dmitry

ответ

1

Это я догадываюсь:

element._meta.get_field('categories').value_from_object(element) 
Смежные вопросы