python - 如何在提交时将选择框的选择添加到数据库
问题描述
我有一个要提交的表单,所有数据都保存到“订单”模型中。其中一个字段是 html 选择框,因此当我提交表单时,它不会保存到模型中。我正在寻找如何使该下拉选择像其他数据一样保存。
表格.py
class CreateOrderForm(forms.ModelForm):
class Meta:
model = Orders
fields = ('reference', 'ultimate_consignee', 'ship_to')
ADD_ORDER.HTML
<div class="column_order">
<label for="form.reference">Reference ID: </label>
{{ form.reference }}
<br>
<label> Ultimate Consignee:
<br>
<select class="select-css">
{% for element in objectlist %}
<option value="{{ element.c_name }}">{{ element.c_name }}</option>
{% endfor %}
</select>
</label>
<br>
<label for="form.ship_to">Ship To: </label>
<br>
{{ form.ship_to }}
</div>
Views.py(说明我如何填充上面的选择框)
def add_order(request):
if request.method == "POST":
form = CreateOrderForm(request.POST)
objectlist = Customers.objects.all()
if form.is_valid():
reference_id = form.cleaned_data.get('reference')
form.save()
return redirect('add_manifest')
else:
form = CreateOrderForm()
objectlist = Customers.objects.all()
context = {
'form': form,
'objectlist': objectlist,
}
return render(request, 'add_order.html', context)
编辑 模型.py
class Customers(models.Model):
ultimate_consignee = models.CharField(max_length=100)
c_address = models.CharField(max_length=1000)
c_country = models.CharField(max_length=50)
def _str_(self):
return self.ultimate_consignee
class Orders(models.Model):
reference = models.CharField(max_length=50, unique=True)
ultimate_consignee = models.ForeignKey(Customers, blank=True)
ship_to = models.CharField(max_length=500, blank=True)
vessel = models.CharField(max_length=100, blank=True)
booking_no = models.CharField(max_length=50, blank=True)
POL = models.CharField(max_length=50, blank=True)
DOL = models.DateField(blank=True)
COO = models.CharField(max_length=50, blank=True)
POE = models.CharField(max_length=50, blank=True)
ETA = models.DateField(blank=True)
pickup_no = models.CharField(max_length=50, blank=True)
terms = models.CharField(max_length=1000, blank=True)
sales_contact = models.CharField(max_length=100, blank=True)
trucking_co = models.CharField(max_length=100, blank=True)
loading_loc = models.CharField(max_length=100, blank=True)
inspector = models.CharField(max_length=50, blank=True)
total_cases = models.IntegerField(blank=True)
total_fob = models.DecimalField(max_digits=10, decimal_places=2, blank=True)
freight_forwarder = models.CharField(max_length=100, blank=True)
commodity = models.CharField(max_length=200, blank=True)
is_airshipment = models.BooleanField(default=False)
credit = models.DecimalField(max_digits=10, decimal_places=2, blank=True)
def _str_(self):
return self.reference
如您所见,我在 .html 文件中创建的选择框与表单并不真正相关。因此,选择中的任何数据都不会保存到 Orders 模型中,这正是我希望在这里实现的。有什么建议吗?
解决方案
推荐阅读
- php - WooCommerce 显示随机产品属性
- c# - 如何在我的 T4 模板中嵌入图像?
- linux - 没有密码的签名 rpm
- javascript - 将字体真棒图标动态添加到 SVG 文本元素
- raspberry-pi - Proteus 中的树莓派
- typescript - Typescript 或 TSlint 可以对隐式类型转换发出警告吗
- angular - 我已经为我的后端 ASP.NET Core Web api 为本地主机创建了 SSL/TLS 证书,我可以与我的前端 Angular 应用程序共享它吗?
- sharepoint-online - SharePoint Online(现代视图)自定义(列表表单 - NewForm.aspx 等)
- docker - 如何查看在 docker 容器中创建的文件?
- r - RShiny - 有时不显示结果