Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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表单字段可以为我提供<;的HTML输出;输入类型=";“范围”/>;?_Python_Django_Django Models - Fatal编程技术网

Python 哪个Django表单字段可以为我提供<;的HTML输出;输入类型=";“范围”/>;?

Python 哪个Django表单字段可以为我提供<;的HTML输出;输入类型=";“范围”/>;?,python,django,django-models,Python,Django,Django Models,我得到了一个包含以下输入的html表单: <input id="duration_slider" type="range" min="1" max="168" value="48" /> 编辑 视图 if options_form.is_valid(): instance = options_form.save(commit=False) print(instance.duration) #prints the default value every tim

我得到了一个包含以下输入的html表单:

    <input id="duration_slider" type="range" min="1" max="168" value="48" />
编辑

视图

if options_form.is_valid():
    instance = options_form.save(commit=False)
    print(instance.duration) #prints the default value every time
表单字段

duration = forms.IntegerField(widget=forms.NumberInput(attrs={'type':'range', 'step': '1', 'min': '1', 'max': '148'}), required=False)

两年!我很晚了

class AdvertisePostForm(forms.ModelForm):
     class Meta:
         model = AdvertisePost
         fields = ['duration', ...]
         widgets = {
         'duration': forms.TextInput(attrs={'type': 'range'})
         }
希望这能奏效 编辑:
如果您想显示它,您需要一些javascript,并且需要在后端进行一些工作才能将其转换为Int

尝试如下:
forms.IntegerField(widget=NumberInput(attrs={'type':'range','step':'2'))
Perfect,这似乎很有效。谢谢。但是对于最小值和最大值,我想你必须先检查一下,作为参考,你可以看看这里,嗯,它每次都输出完全相同的值(默认值)-这有关系吗?我在表单小部件中添加了
min
max
,但似乎什么都没做。有什么想法吗?我已经在编辑中添加了更新的代码。
class AdvertisePostForm(forms.ModelForm):
     class Meta:
         model = AdvertisePost
         fields = ['duration', ...]
         widgets = {
         'duration': forms.TextInput(attrs={'type': 'range'})
         }