Найти - Пользователи
Полная версия: Согласовать модель и форму в темплейте
Начало » Django » Согласовать модель и форму в темплейте
1
aliens
Пишу что-то типа интернет магазина, требуется выводить в темплейт несколько полей одной модели, напротив нее 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, но тогда создается форма для этих полей, а мне нужен просто текст. Впринципе можно все вручную такое получить, но хочется более правильное и оптимизированное решение
Vermus
Сложно понять, что требуется.
Но если я правильно понял, создайте формсет для количества (в зависимости от количества выводимых товаров), во 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 %}
Код немного причесать, должно работать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB