我正在用Cartridge/夹层建立一个网络商店。但是,默认情况下,签出表单(cartridge.shop.forms.OrderForm)包含姓名和姓氏的字段。我想要一张表格,客户只需提供一个名字。此外,我不想将这些字段用于国家和州/地区。
到目前为止,我已经创建了一个CustomOrderForm,它对OrderForm进行子类,并添加了一个‘name’-字段。我还试图使用以下方法覆盖init方法:
class CustomOrderForm(OrderForm):
name = forms.CharField(label=("Navn"))
def __init__(self, *args, **kwargs):
super(OrderForm, self).__init__(*args, **kwargs)
self.fields.pop('billing_detail_country')这实际上对我没有任何好处,除了‘name’-字段显示在模板中。但是我仍然需要从这个字段中获取输入,将其分割为名字和姓氏,然后用它填充相关的字段。
我该怎么做?
发布于 2016-11-28 10:36:17
以下是我如何将字段国家和州/地区从我的订单中删除:-
class CustomOrderForm(OrderForm):
class Meta:
model = Order
fields = ([f.name for f in Order._meta.fields if
f.name.startswith("billing_detail") or
f.name.startswith("shipping_detail")
]
+
["additional_instructions", "discount_code"])
def __init__(
self, request, step, data=None, initial=None, errors=None,
**kwargs):
res = super(CustomOrderForm, self).__init__(request, step, data, initial, errors, **kwargs)
del self.fields["billing_detail_country"]
del self.fields["shipping_detail_country"]
return res因为这是一本字典,我用了del方法。希望如此,这是有用的,因为你是被回答了这么长时间。
https://stackoverflow.com/questions/36578191
复制相似问题