Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Согласовать модель и форму в темплейте [RSS Feed]

#1 Дек. 19, 2008 19:44:45

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

Согласовать модель и форму в темплейте

Пишу что-то типа интернет магазина, требуется выводить в темплейт несколько полей одной модели, напротив нее input box, а после этого узнавать, что было введено напротив каждой выведеной записи.
Вот модель:

class Good(models.Model):
group_good = models.CharField(max_length=10, verbose_name=u"Группа",
choices=GROUPS_GOOD, null=True)
title = models.CharField(max_length=250, verbose_name=u"Название:")
barcode = models.IntegerField(max_length=24, verbose_name=u"Штрих код:")
count = models.IntegerField(max_length=4, verbose_name=u"Остаток:")
image = models.ImageField(upload_to='/images/', verbose_name=u"Фотография",
blank=True, default="default.jpg")
description = models.TextField(verbose_name=u"Описание", blank=True)
price = models.FloatField(verbose_name=u"Цена", max_length=6)
price_discount = models.FloatField(verbose_name=u"Цена", max_length=6, blank=True)
В темплейте хотелось бы получить:
Good.title Good.barcode <label for=“id_Good.barcode”>Количество:</label></th><td><input type=“text” name=“good-Good.barcode” value=“0” id=“good-Good.barcode” />

Думал использовать formset, но тогда создается форма для этих полей, а мне нужен просто текст. Впринципе можно все вручную такое получить, но хочется более правильное и оптимизированное решение



Отредактировано (Дек. 19, 2008 19:45:29)

Офлайн

#2 Дек. 20, 2008 08:43:06

Vermus
От:
Зарегистрирован: 2008-11-18
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Согласовать модель и форму в темплейте

Сложно понять, что требуется.
Но если я правильно понял, создайте формсет для количества (в зависимости от количества выводимых товаров), во view создайте класс, для каждого элемент формсета с товаром.

class GoodForm(object):
def __init__(self,goodfrm,good):
self.goodfrm=goodfrm
self.good=good
Создайте список объектов этого класса:
goodforms=[]
for goodform in good_formset.forms:
good=здесь получить данные по товару
goodforms.append(GoodForm(goodform,good))
Можно наоборот использовать индекс товаров для доступа к формам формсета. Главное, чтобы индексы совпадали.
В темплейте передать managment_form исходного формсета и goodforms использовать как:
{{good_formset.managment_form}}
{% for goodform in goodforms %}
{{goodform.good.title}}{{goodform.goodfrm.count}}
{% endfor %}
Код немного причесать, должно работать.



Отредактировано (Дек. 20, 2008 08:43:51)

Офлайн

  • Начало
  • » Django
  • » Согласовать модель и форму в темплейте[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version