表单字段在Django中为None,具有初始值

2024-04-20 03:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有这个django的表格:

class userRequest(forms.Form):
    def __init__(self, *args, **kwargs):
        super(userRequest, self).__init__(*args, **kwargs)



    lat_Origin = forms.FloatField(widget=forms.HiddenInput(attrs={'id':'lat_Origin'}),required=False,initial=181)
    lon_Origin = forms.FloatField(widget=forms.HiddenInput(attrs={'id':'lon_Origin'}),required=False,initial=181)
    lat_Dest = forms.FloatField(widget=forms.HiddenInput(attrs={'id':'lat_Dest'}),required=False,initial=181)
    lon_Dest = forms.FloatField(widget=forms.HiddenInput(attrs={'id':'lon_Dest'}),required=False,initial=181)

    origin_address=forms.CharField(max_length=200,widget=forms.TextInput(attrs={'class':'data_aux data','id':'origin_address'}))
    destination_address=forms.CharField(max_length=200,widget=forms.TextInput(attrs={'class':'data_aux data','id':'destination_address'}))

    date=forms.DateField(widget=DateInput(attrs={'class':'data_aux data','id':'data_id'}))

    maxPrice=forms.FloatField(label='Max price:',widget=forms.NumberInput(attrs={'class':'data_aux data order','step': '0.1'}),required=False)

    CHOICES_ORDERTYPE =(
    ('NONE', 'NONE'),
    ('ASC', 'ASC'),
    ('DESC', 'DESC'),
    )
    
    OrderType = forms.ChoiceField(label='Order',choices = CHOICES_ORDERTYPE,initial='NONE',required=False,widget=forms.Select(attrs={'class':'data order'}))

    CHOICES_ORDERBY =(
    ('PRICE', 'PRICE'),
    ('DURATION', 'DURATION'),
    )
    OrderBy = forms.ChoiceField(label='Order by',choices = CHOICES_ORDERBY,initial='PRICE',required=False,widget=forms.Select(attrs={'class':'data order'}))

当我用post方法打印表单时,我得到lat_Origin、lon_Origin、lat_Dest和lon_Dest均为None:

if request.method == 'POST':
        form = userRequest(request.POST)
        if form.is_valid():
            print(form.cleaned_data)
    else:
        form = userRequest()
{'lat_Origin': None, 'lon_Origin': None, 'lat_Dest': None, 'lon_Dest': 
None, 'origin_address': 'Lugar Diseminado, 82, 45312 Cabañas de Yepes, 
Toledo, España', 'destination_address': 'Calle San Roque, 28, 50324 Santa Cruz de Grío, Zaragoza, España', 'date': datetime.date(2021, 6, 12), 'maxPrice': 0.5, 'OrderType': 'NONE', 'OrderBy': 'PRICE'}

我不知道如何解决这个问题。多谢各位