【问题标题】:Django Forms - How to change an attribute from a field?Django Forms - 如何更改字段的属性?
【发布时间】:2014-07-07 01:36:00
【问题描述】:

Django 表单功能为我的表单字段生成 html 代码。

我想更改一些属性或为该表单中的特定字段添加一些属性。

例如,我想为一个字段指定一个类。

我该怎么做?

我阅读了关于 SO 的答案,我可以这样做:

city = forms.CharField(widget=forms.TextInput(attrs={'class':'anyclass'}))

但我收到一个错误,即 attrs 不存在或未定义...

更新

这是我的forms.py

从 django 导入表单 从 HelloUprise.models 导入目标 from django.contrib.auth.models 导入用户

class GoalForm(forms.ModelForm):
    deadline = forms.DateField(widget=forms.DateField(attrs={'class': 'form-control'}))


class Meta:
    model=Goal
    fields = ['goal', 'description', 'deadline', 'priority']

这是错误:

TypeError at /
__init__() got an unexpected keyword argument 'attrs'

回溯切换到复制粘贴视图

C:\Python27\lib\site-packages\django\core\handlers\base.py 在 get_response resolver_match = resolver.resolve(request.path_info) ... ▶ 本地变量 C:\Python27\lib\site-packages\django\core\urlresolvers.py 在解析 对于 self.url_patterns 中的模式:... ▶ 本地变量 C:\Python27\lib\site-packages\django\core\urlresolvers.py 在 url_patterns 模式 = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) ... ▶ 本地变量 C:\Python27\lib\site-packages\django\core\urlresolvers.py 在 urlconf_module self._urlconf_module = import_module(self.urlconf_name) ... ▶ 本地变量 C:\Python27\lib\site-packages\django\utils\importlib.py 在 import_module 导入(名称)... ▶ 本地变量 C:\Users\Barosan\Documents\GitHub\uprisedev\UpriseApplication\UpriseApplication\urls.py 在 url(r'^', 包括('HelloUprise.urls')), ... ▶ 本地变量 C:\Python27\lib\site-packages\django\conf\urls__init__.py 包含在 urlconf_module = import_module(urlconf_module) ... ▶ 本地变量 C:\Python27\lib\site-packages\django\utils\importlib.py 在 import_module 导入(名称)... ▶ 本地变量 C:\Users\Barosan\Documents\GitHub\uprisedev\UpriseApplication\HelloUprise\urls.py 在 从 HelloUprise 导入视图... ▶ 本地变量 C:\Users\Barosan\Documents\GitHub\uprisedev\UpriseApplication\HelloUprise\views.py 在 从 HelloUprise.forms 导入 GoalForm ... ▶ 本地变量 C:\Users\Barosan\Documents\GitHub\uprisedev\UpriseApplication\HelloUprise\forms.py 在 类 GoalForm(forms.ModelForm): ... ▶ 本地变量 GoalForm 中的 C:\Users\Barosan\Documents\GitHub\uprisedev\UpriseApplication\HelloUprise\forms.py 截止日期 = forms.DateField(widget=forms.DateField(attrs={'class': 'form-control'})) ... ▶ 本地变量 init 中的 C:\Python27\lib\site-packages\django\forms\fields.py super(BaseTemporalField, self).init(*args, **kwargs) ... ▶ 本地变量

【问题讨论】:

  • 这正是你的做法,你不会从该代码中得到那个错误。您应该发布确切的代码和完整的回溯。
  • 这里是...如果我可以提供更多信息,请告诉我

标签: django html django-models django-forms django-templates


【解决方案1】:

您还没有完成示例中显示的内容。您尝试传递该字段的另一个实例,而不是使用小部件。如错误所示,这不起作用。

应该是:

deadline = forms.DateField(widget=forms.DateInput(attrs={'class': 'form-control'}))

注意使用DateInput 而不是DateField

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多