0
다음 orderline formset 있습니다. 장고 Inlineformset - 두 번째 드롭 다운을 기반으로 JQuery 드롭 다운
제품 드롭 다운 100 개 + 제품으로 구성됩니다으로
, 나는 제품 유형 선택에 따라 드롭 다운에서 사용할 수있는 제품을 필터링 할. 나는 웹에서 여러 솔루션과 예제를 보는 JQuery와 함께 작동하도록 노력해 왔지만 실제로 붙어있다.이 문제를 해결하기위한 도움이나 조언을 보내 주시면 대단히 감사하겠습니다.
참조 할 수있는 관련 모델/뷰/양식 아래
Models.py
class OrderHeader(models.Model):
customer = models.ForeignKey(Customer)
orderheader_total_price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True, default=0)
def __unicode__(self):
return smart_unicode(self.pk)
class OrderLine(models.Model):
orderheader = models.ForeignKey(OrderHeader)
product_type = models.ForeignKey(ProductType)
product = models.ForeignKey(Product)
def __unicode__(self):
return smart_unicode(self.pk)
Views.py
def orderline_formset(request, id=None):
if id:
orderid = OrderHeader.objects.get(pk=id)
else:
orderid = OrderHeader()
OrderLineFormSet = inlineformset_factory(OrderHeader, OrderLine, OrderLineForm, extra = 1, can_delete=True)
helper = OrderLineFormSetHelper()
if request.method == 'POST':
form = OrderHeaderForm(request.POST, instance=orderid)
formset = OrderLineFormSet(request.POST,instance=orderid)
if form.is_valid() and formset.is_valid():
form.save()
formset.save()
form = OrderHeaderForm(instance=orderid)
formset = OrderLineFormSet(instance=orderid)
messages.success(request, 'Order saved succesfully!')
else:
messages.error(request, 'Order save error, please check fields below')
else:
form = OrderHeaderForm(instance=orderid)
formset = OrderLineFormSet(instance=orderid)
return render_to_response("order-add.html", {'orderform' : form,'formset': formset, 'helper': helper},
context_instance=RequestContext(request))
Forms.py
class OrderLineForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(OrderLineForm, self).__init__(*args, **kwargs)
class Meta:
model = OrderLine
fields = ['product_type', 'product','material','orderline_product_price','orderline_quantity',
'orderline_total_price']
labels = {
'orderline_quantity': ('Quantity'),
'orderline_product_price': ('Price'),
'orderline_total_price': ('Total'),
}
class OrderLineFormSetHelper(FormHelper):
def __init__(self, *args, **kwargs):
super(OrderLineFormSetHelper, self).__init__(*args, **kwargs)
self.form_method = 'post'
self.template = 'bootstrap3/table_inline_formset.html'
self.render_required_fields = True
self.form_tag = False
HTML
row0
<select class="select form-control" id="id_orderline_set-0-product_type" name="orderline_set-0-product_type">
<select class="select form-control" id="id_orderline_set-0-product" name="orderline_set-0-product">
row1
<select class="select form-control" id="id_orderline_set-1-product_type" name="orderline_set-1-product_type">
<select class="select form-control" id="id_orderline_set-1-product" name="orderline_set-1-product">
etc
감사합니다 -이 자습서로 안내했습니다 - http://www.devinterface.com/blog/ko/2011/02/how-to-implement-two-dropdowns-dependent-on-each-other-using -django-and-jquery/ – phicon
도와 드릴 수있어서 다행입니다! –