Форум сайта python.su
Да мне это понятно, это просто и ясно. Но вот только мне не категории нужно выбирать, а товары, товары конкретной категории. Товары в виде радиобаттонов. Вот поэтому в forms.ру я отправлял id категории, что бы я смог достать конкретные товары одной категории. В общем, я реализовал это, но хочется, что бы в отображаемом <input type=“radio”> был добавлен class к примеру, ну и меня интересует, как я могу достать данные запросом, что был отработан в forms.ру.
Офлайн
Итак, чтобы выбрать товары какой то категории, нам сначала нужно выбрать категорию.
Не так ли? Мы с вами выбираем категорию, сабмитим форму, во вьюху, передается id категории, там мы по этому id выбираем товары и возвращаем страницу с товарами.
Нет?
Офлайн
Да, выбор категории реализован, это есть
вот вьюха
def product_once(request, category_id): product_once = Category.objects.get(id=category_id) #Неточно назвал переменную #это общие данные товаров #как описание, к примеру product_value = Product.objects.filter(category_id__exact=category_id) #это данные о каждом товаре в этой категории #передаю в шаблон на случай, если не получится сделать через forms.py #(собственно так сейчас и есть) if request.method == 'POST': #это в данной задаче не интересует... form = ChooseForm(request.POST) if form.is_valid(): pass else: form = ChooseForm(param=category_id) context = {'product': product_once, 'value': product_value, 'form':form} return render(request, 'product_once.html', context)
class ChooseForm(forms.Form): radio = forms.ChoiceField() def __init__(self, *args, **kwargs): super(ChooseForm, self).__init__() param = kwargs.pop('param') self.fields['radio'].widget=forms.RadioSelect() self.fields['radio'].label='' self.fields['radio'].choices =Product.objects.filter(category_id__exact=param).values_list('id', 'name', 'photo') #И тут я создал запрос, которым хотел вернуть данные, много данных
<input id="radio{{ val.id }}" type="radio" name="rad" class="RadioButtonClass" value='{{ val.photo }}' onClick='picture ("{{ val.id }}");'></input>
Отредактировано dreamer-s (Окт. 14, 2013 00:13:05)
Офлайн
1.
а) Юзаем jQuery, событие change.
change
б) В разметке имеем элемент <img>
в) При отработке обработчика change запрашиваем аяксом URL картинки и присобачиаем результат к src.
Как то так это должно выглядеть
<script> $(document).ready(function(){ $("[name=product]").change(function() { var product_id = $("[name=product]:checked").val(); $.getJSON("{% url 'my_ajax_view_url' %}", {id:product_id}, function(img_url){ $("#img_id").attr("src", img_url) }) } ) }) </script> <input type="radio" name="product" value="1"> Сабля <input type="radio" name="product" value="2"> Пушка <input type="radio" name="product" value="3"> Пулемёт <img id="img_id" src="/static/img/no_picture.png">
<html> <head></head> <body> <img src={{ img.url }}> </body> </html>
Отредактировано FishHook (Окт. 14, 2013 12:47:57)
Офлайн