spe*_*ndo 5 python django html5 django-models
我有一个模特
# models.py
from django.db import models
class Foo(models.Model):
# ...
color = models.CharField(max_length=7, null=True)
Run Code Online (Sandbox Code Playgroud)
color应该存储六角颜色.而不是input type="text"我想使用html5输入类型"颜色".
我通过设置以下表单对象尝试了这个:
# forms.py
from django.forms import ModelForm, CharField
class FooForm(ModelForm):
class Meta:
model = Foo
widgets = {
'color': CharField(attrs={'type': 'color'}),
}
Run Code Online (Sandbox Code Playgroud)
但是,这给了我以下错误消息
init()得到了一个意外的关键字参数'attrs'
我做错了什么,我该怎么做?
自己解决了.它几乎像我预期的那样工作:
# models.py
from django.db import models
class Foo(models.Model):
# ...
color = models.CharField(max_length=7, null=True)
# forms.py
from django.forms import ModelForm
from django.forms.widgets import TextInput
class FooForm(ModelForm):
class Meta:
model = Foo
widgets = {
'color': TextInput(attrs={'type': 'color'}),
}
Run Code Online (Sandbox Code Playgroud)
对我来说棘手的部分是不要忘记在视图中正确设置:
# views.py
from my_app.models import Foo
from my_app.forms import FooForm
class FooCreate(CreateView):
model = Foo
form_class = FooForm
Run Code Online (Sandbox Code Playgroud)
感谢aamir-adnan - 他指出我必须使用TextInput而不是CharField.
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |