Zor*_*gan 5 python django django-models
我有一个带有此输入的 html 表单:
<input id="duration_slider" type="range" min="1" max="168" value="48" />
Run Code Online (Sandbox Code Playgroud)
不过,我现在想将此滑块转换为 Django 表单字段,这样我就可以在 Django 表单中使用它。字段名称是,duration所以我将其更改id为id=id_duration.
对于该字段,我的 models.py 和 forms.py 会是什么样子?
目前只是:
class AdvertisePost(Post):
...
duration = models.IntegerField(default=48)
def __str__(self):
return self.title
class AdvertisePostForm(forms.ModelForm):
duration = ?
class Meta:
model = AdvertisePost
fields = [
...
#'duration'
]
Run Code Online (Sandbox Code Playgroud)
编辑
意见
if options_form.is_valid():
instance = options_form.save(commit=False)
print(instance.duration) #prints the default value every time
Run Code Online (Sandbox Code Playgroud)
表单字段
duration = forms.IntegerField(widget=forms.NumberInput(attrs={'type':'range', 'step': '1', 'min': '1', 'max': '148'}), required=False)
Run Code Online (Sandbox Code Playgroud)
噢两年了!我来晚了
class AdvertisePostForm(forms.ModelForm):
class Meta:
model = AdvertisePost
fields = ['duration', ...]
widgets = {
'duration': forms.TextInput(attrs={'type': 'range'})
}
Run Code Online (Sandbox Code Playgroud)
希望这有效编辑:如果你想显示它,你将需要一些 javascript 以及后端的一些工作将其转换为 Int