Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表单字段未显示正确的queryset值_Python_Django - Fatal编程技术网

Python Django表单字段未显示正确的queryset值

Python Django表单字段未显示正确的queryset值,python,django,Python,Django,以下代码来自多供应商电子商务门户。我们需要根据结帐摘要页面上的商店(或供应商)显示不同的发货方式 然而,即使我在打印时得到了正确的查询集,即Store 1具有Test-the-Rest-of-World Shipping method,Store 2具有UPC和DHL,但呈现的表单显示了不正确的值- ######################################################### 类别ShippingCountryChoiceField(forms.ModelC

以下代码来自多供应商电子商务门户。我们需要根据结帐摘要页面上的商店(或供应商)显示不同的发货方式

然而,即使我在打印时得到了正确的查询集,即Store 1具有Test-the-Rest-of-World Shipping method,Store 2具有UPC和DHL,但呈现的表单显示了不正确的值-

#########################################################
类别ShippingCountryChoiceField(forms.ModelChoiceField):
widget=forms.RadioSelect()
def标签来自_实例(self,obj):
price\u html=format\u price(obj.price.gross,obj.price.currency)
label=mark_safe(“%s%s%”(obj.shipping_方法,price_html))
退货标签
类ShippingMethodForm(forms.Form):
定义初始值(自身、国家/地区代码、*args、**kwargs):
stores=kwargs.pop('stores')
超级(ShippingMethodForm,self)。\uuuuuuuuuuuuuuu初始值(*args,**kwargs)
对于计数,存储在枚举中(存储,开始=1):
方法\字段=ShippingCountryChoiceField(
queryset=ShippingMethodCountry.objects.select\u related(
“配送方式”)。按(“价格”)订购。筛选(配送方式门店=门店),
label=pgettext_lazy('Shipping method form field label','s'%store'的装运方法),
必需=真)
如果国家/地区代码:
queryset=方法\字段.queryset
方法\u field.queryset=queryset.unique\u用于国家代码(国家代码)
如果self.initial.get('method')为无:
method_field.initial=method_field.queryset.first()
方法\字段。空\标签=无
self.fields['method\uu%d'%count]=method\u字段
打印[q.queryset for q in self.fields.values()]
###################################################
@加载检查
@验证凭证
@验证购物车
@验证是否需要装运
@验证装运地址
@添加凭证表格
def装运方法视图(请求、签出):
国家/地区代码=checkout.shipping\u address.country.code
stores=checkout.cart.lines.values\u list('variant\u product\u store',flat=True)
stores=Store.objects.filter(id\uu in=stores)
打印checkout.shipping\u方法
装运方法形式=装运方法形式(
国家/地区代码,request.POST或None,初始值={'method':checkout.shipping\u method},
商店=商店)
如果装运方法表单有效():
对于计数,存储在枚举中(存储):
checkout.shipping\u method[store]=shipping\u method\u form.cleaned\u data['method\u%s'%count]
返回重定向('签出:摘要')
打印[q.queryset for q in shipping_method_form.fields.values()]
返回TemplateResponse(请求'checkout/shipping_method.html',上下文={
“发货方法表单”:发货方法表单,“签出”:签出})
##############################################################
{%extends“checkout/details.html”%}
{%load i18n%}
{来自价格的总负荷百分比\u i18n%}
{%load bootstrap_form from bootstrap3%}
{%block forms%}
{%trans“配送地址”上下文“签出配送地址标题”%}
{%include“userprofile/snippets/address short.html”,地址=checkout.shipping\仅地址%}


{%csrf_令牌%} {%bootstrap\u form shipping\u method\u form show\u label=True%}

{%trans“Continue”context“Checkout shipping method主操作”%}

{%endblock%}
我认为问题在于您正在字段定义中实例化小部件。这可能导致不同字段之间共享状态。尝试将其更改为:

class ShippingCountryChoiceField(forms.ModelChoiceField):

    widget = forms.RadioSelect
    ...

我认为问题在于您正在字段定义中实例化小部件。这可能导致不同字段之间共享状态。尝试将其更改为:

class ShippingCountryChoiceField(forms.ModelChoiceField):

    widget = forms.RadioSelect
    ...

什么是正确的值?我已经为您的答案编辑了问题-商店1有测试世界其他地区的运输方法,商店2有UPC和DHL哪些是正确的值?我已经为您的答案编辑了问题-商店1有测试世界其他地区的运输方法,商店2有UPC和DHLTANK you@ALASDAIRTANK you@alasdair