Как получить названия полей модели Django 1.6?

Добрый день!

Есть 2 класса:
class ParentClass(model.Models):
...

class ChildClass(ParentClass):
...


Нужно получить названия полей дочернего класса.
Делал так
return [(obj._meta.get_field(field.name)) for field in obj._meta.fields]


Но возвращает поля и унаследованного класса.

Решено.
def get_only_child_fields(obj):
        allfields = [(field.name) for field in obj._meta.fields]
        parentfields = [(field.name) for field in Product._meta.fields]
        return [f for f in allfields if f not in parentfields]
  • Вопрос задан
  • 3777 просмотров
Пригласить эксперта
Ответы на вопрос 1
Masik
@Masik
Программирую понемногу
На мой взгляд некрасиво, но все же:
fields = obj._meta.fields
child_fields = filter(lambda x: '.ChildClass.' in x.__str__(), fields)
parent_fields = filter(lambda x: '.ParentClass.' in x.__str__(), fields)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы