在表单下拉列表中显示项目详细信息和项目名称



目前我正在尝试在下拉列表中显示零件数量(quan(和零件名称。我有一个零件表,它包含零件名称和零件数量,这个表被称为ForeignKey,并被放入订单表中。因此,在从零件下拉列表中选择零件名称的过程中,在订单表单中,除了零件名称之外,我还想显示零件数量。你想把它做成那样吗?

型号.py

class Part(models.Model):
partno = models.CharField(max_length=50)
partname = models.CharField(max_length=50)
quan = models.PositiveIntegerField(default= 0)
def __str__(self):
return '{}, quantity - {}'.format(self.partname, self.quan)
class Order(models.Model):
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
part = models.ForeignKey(Part, on_delete=models.CASCADE)

views.py

def create_order(request):
from django import forms
form = OrderForm()
if request.method == 'POST':
for form_data in forms_data:
forms = OrderForm(request.POST)
if forms.is_valid():
supplier = forms.cleaned_data['supplier']
product = forms.cleaned_data['product']
part = forms.cleaned_data['part']

order = Order.objects.create(
supplier=supplier,
product=product,
part=part,
)
return redirect('order-list')
context = {
'form': form
}
return render(request, 'store/addOrder.html', context)

HTML

<form action="#" method="post" id="form-container" novalidate="novalidate">
{% csrf_token %}
<div class="form-group">
<label for="product" class="control-label mb-1">Product</label>
{{ form.product }}
</div>
<div class="form-group">
<label for="supplier" class="control-label mb-1">Supplier</label>
{{ form.supplier }}
</div>

<div class="form-group">
<label for="part" class="control-label mb-1">Part Name</label>
{{ form.part }}
</div>
</form>

您将不得不写入"__str__"(str和__之间没有空格(模型"零件"的方法

def __str__(self):
return '{}, quantity - {}'.format(self.partname, self.quan)

还可以看看这篇文章:在Django中执行__str__函数是什么?

相关内容

最新更新