【发布时间】:2018-04-11 10:27:19
【问题描述】:
我有一个带有此输入的 html 表单:
<input id="duration_slider" type="range" min="1" max="168" value="48" />
但是我现在想将此滑块转换为 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'
]
编辑
观看次数
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)
【问题讨论】:
-
试试这样:
forms.IntegerField(widget=NumberInput(attrs={'type':'range', 'step': '2'})) -
完美,这似乎有效。谢谢。
-
但是对于最小值和最大值我认为你必须先检查一下,作为参考你可以看这里code.djangoproject.com/ticket/20674
-
嗯,它每次都输出完全相同的值(默认值)——这可能是相关的吗?我在表单小部件中添加了
min和max,但似乎没有做任何事情。任何想法?我在编辑中添加了更新后的代码。
标签: python django django-models