Форум сайта python.su
Хочу вынести в абстракцию список полей модели
AbstrView
var = None self.model.objects.values(var)
var = 'id','title','text'
Отредактировано info.rss (Сен. 21, 2014 16:43:09)
Офлайн
fields=[field.name for field in instance._meta.fields]
Офлайн
def instance_dict(instance, key_format=None): "Returns a dictionary containing field names and values for the given instance" from django.db.models.fields.related import ForeignKey if key_format: assert '%s' in key_format, 'key_format must contain a %s' key = lambda key: key_format and key_format % key or key d = {} for field in instance._meta.fields: attr = field.name value = getattr(instance, attr) if value is not None and isinstance(field, ForeignKey): value = value._get_pk_val() d[key(attr)] = value for field in instance._meta.many_to_many: d[key(field.name)] = [obj._get_pk_val() for obj in getattr(instance, field.attname).all()] return d
Отредактировано info.rss (Сен. 22, 2014 07:40:52)
Офлайн
FishHookздесь выводятся все имена полей, а как это сделать выборочно для каждой дочерней вьюхи?
Офлайн
Перефразируй стартовый вопрос, нифига не понятно.
Офлайн
Есть модель с полями: a, b, c, d, e, f
Вьюха DetailView
Хотелось бы в шаблоне вывести:
{% for x in one_group %} здесь поля x.a, x.d, x.e {% endfor %} {% for x in two_group %} здесь поля x.b, x.c {% endfor %} {{field.f}} # это обычная переменная }
Отредактировано info.rss (Сен. 22, 2014 11:24:15)
Офлайн
То-ли я дурак?
Ну возьми и сделай, прям так как написал
{% for x in queryset %} {{ x.a }}, {{ x.d }}, {{ x.e }} {% endfor %} {% for x in two_group %} {{ x.b }}, {{ x.c }} {% endfor %} }
Офлайн
{% for x,y in queryset %} <p class="label">{{x}}</p> <p class="value">{{y}}</p> {% endfor %}
{% for x,y in queryset %} {% if Boolean == True %} <p class="label">{{x}}</p> <p class="value">{{y}}</p> {% endif %} {% if Boolean == False %} <p class="label">{{x}}</p> <p class="value">{{y}}</p> {% endif %} {% endfor %}
Отредактировано info.rss (Сен. 22, 2014 12:41:24)
Офлайн
Ок, может кто-то найдется, кто способен понять твои чаяния, я умываю руки, ибо не понял вообще ничего. В частности: что значит “в queryset передать” и зачем делать цикл если “только одна запись”.
Офлайн
слово queryset, это из вашего примера {% for x in queryset %}
вообще-то {% for x in one_group %}
цикл, чтобы не писать в шаблоне, типа:
{{item.a}} {{item.b}} {{item.c}} {{item.d}}
{% for x,y in one_group %} <p class="label">{{x-это название поля}}</p><p class="value">{{y-это значение поля}}</p> {% endfor %}
Офлайн