【发布时间】:2020-01-20 14:20:51
【问题描述】:
我有一个问题如下。我在这个问题上停留了一段时间。
我在 django 模型表单中建立了一个订单,该订单提供客户使用购物车来填写他们的交易信息。
下面是我的代码结构:
## models.py
from django.db import models
class Order(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
address = models.CharField(max_length=250)
postal_code = models.CharField(max_length=20)
city = models.CharField(max_length=10)
## forms.py
from django import forms
from .models import Order
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout,Div,Field
class OrderCreateForm(forms.ModelForm):
class Meta:
model = Order
fields = ['first_name', 'last_name', 'email', 'address', 'postal_code','city']
def __init__(self,*args,**kwargs):
super(OrderCreateForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper = Layout(
Div(Field('city') , id="twzipcode_ADV"),
)
## views.py
from .forms import OrderCreateForm
from .models import OrderItem
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
## .html
<form action="." method="post">
{% csrf_token %}
{% for field in form %}
{% if field is form.city or field is form.county%}
<div id="twzipcode_ADV"></div>
{% else %}
{{field.name}}
{{field}}
{% endif %}
{% endfor %}
{% buttons %}
<button type="submit" class="btn btn-success btn-product">
<span class="glyphicon glyphicon-shopping-cart"></span> Place order
</button>
{% endbuttons %}
</form>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'></script>
<script src='https://cdn.jsdelivr.net/npm/jquery-twzipcode@1.7.14/jquery.twzipcode.min.js'></script>
<script src="{%static "js/orders/create.js" %}"></script>
## create.js
$("#twzipcode_ADV").twzipcode({
zipcodeIntoDistrict: true,
css: ["city form-control", "town form-control"],
countyName: "city",
districtName: "town"
});
网站可以如下图所示。 正如我在红色矩形区域中显示的那样。我的问题是当我按下占位符按钮时,第二个选择器不会保存到我已经在 models.py 中定义的城市字段中。但是它只存储第一个选择器。我该如何解决这个问题?
【问题讨论】:
-
图在这里:
-
您的结帐表单显示了两个带有数据选项的选择器。您是如何做到的?但是您的模型在“邮政编码”之后仅显示“城市”。它显示了一个字段,但在您的图中它显示了两个字段。你到底想要什么?
-
我使用上面封装在 Jason 表单中的 JavaScript API 来实现一个 div 标签中的两个选择器,您可以在 js 文件中看到。更多详细信息您可以参考上面的 URL。我想要他们两个但是我只能提取第一个。
标签: javascript python django django-forms