Я пытаюсь получить значение выбранного элемента из выпадающего списка в CreateView с помощью вызова Ajax. Например, когда элемент был выбран из раскрывающегося меню, я хочу, чтобы вся связанная с ним информация автоматически отображалась в шаблоне.
Но я не уверен, почему я не смогу вернуть значение выбранного элемента (которое будет необходимо для фильтрации) в CreateView со следующими кодами:
models.py
class Model_Item(models.Model):
item_name = models.CharField(max_length = 20)
item_description = models.CharField(max_length = 100)
item_origin = models.CharField(max_length = 50)
# and many more fields
def __unicode__(self):
return self.item_name
class Model_Cart(models.Model):
item = models.ForeignKey(Model_Item)
customer_name = models.CharField(max_length = 50)
HTML
<form method = "POST"> {% csrf_token %}
<table id = "table_01">
<tr>
<th>Item name</th>
<td>{{ form.item}}</td>
</tr>
</table>
<div>
preview the description, origin and other fields of the choosen item here -->
</div>
<table id = "table_02">
<tr>
<th>Customer's name</th>
<td>{{ form.customer_name}}</td>
</tr>
</table>
<input type = "submit" value = "Submit">
</form>
1011 * Аякс *
$(document).ready(function(){
$("#id_item").change(function(){
var item_selection = $(this).val();
$.ajax({
type: "GET",
data: {"item_name_id": item_selection}
});
});
});
views.py
class View_Cart(CreateView):
form_class = Form_Cart
def get_queryset(self):
item_name_id = self.request.GET.get("item_name_id")
print item_name_id # <------ Does not print anything
Я ссылался на эту ссылку , но безрезультатно. Этот источник говорит, что мы не можем использовать "get_queryset" в CreateView, но здесь говорит, что "get_queryset" является одной из доступных функций в CreateView.
У кого-нибудь есть решение этого?