Форум сайта python.su
0
Да мне это понятно, это просто и ясно. Но вот только мне не категории нужно выбирать, а товары, товары конкретной категории. Товары в виде радиобаттонов. Вот поэтому в forms.ру я отправлял id категории, что бы я смог достать конкретные товары одной категории. В общем, я реализовал это, но хочется, что бы в отображаемом <input type=“radio”> был добавлен class к примеру, ну и меня интересует, как я могу достать данные запросом, что был отработан в forms.ру.
Офлайн
568
Итак, чтобы выбрать товары какой то категории, нам сначала нужно выбрать категорию.
Не так ли? Мы с вами выбираем категорию, сабмитим форму, во вьюху, передается id категории, там мы по этому id выбираем товары и возвращаем страницу с товарами.
Нет?
Офлайн
0
Да, выбор категории реализован, это есть 
вот вьюха
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)
Офлайн
568
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)
Офлайн