2013-09-26 48 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:我需要按名稱訪問:我通過字段名進行迭代並收集相關對象。

例子:

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) 
相關問題