【问题标题】:Set the 'id' attribute using template tags使用模板标签设置“id”属性
【发布时间】:2019-03-29 11:55:26
【问题描述】:

有没有办法在模板中设置“id”属性? 假设我在我的视图中将form 作为上下文传递,所以当我从我的表单中呈现一些字段时,比如{{form.field1}},我可以设置像{{form.fiel1|attrib=('id':'id_forfieldone')}} 这样的“id”吗?

我知道可以在表单类定义中完成,但我需要在模板中完成。

编辑:这是错误

Traceback(最近一次调用最后一次):文件“manage.py”,第 17 行,在 execute_from_command_line(sys.argv) 文件 "C:\Python27\lib\site-packages\django\core\management__init__.py", 第 351 行,在 execute_from_command_line utility.execute() 文件中 "C:\Python27\lib\site-packages\django\core\management__init__.py", 第 343 行,执行中 self.fetch_command(subcommand).run_from_argv(self.argv) 文件 "C:\Python27\lib\site-packages\django\core\management__init__.py", 第 177 行,在 fetch_command commands = get_commands() 文件中 “C:\Python27\lib\site-packages\django\utils\lru_cache.py”,第 101 行, 在包装结果 = user_function(*args, **kwds) 文件中 "C:\Python27\lib\site-packages\django\core\management__init__.py", 第 72 行,在 get_commands for app_config 中 反转(列表(apps.get_app_configs())):文件 “C:\Python27\lib\site-packages\django\apps\registry.py”,第 137 行, 在 get_app_configs self.check_apps_ready() 文件中 “C:\Python27\lib\site-packages\django\apps\registry.py”,第 124 行, 在 check_apps_ready raise AppRegistryNotReady("应用没有加载 还没有。”)django.core.exceptions.AppRegistryNotReady:应用程序不是 尚未加载。

【问题讨论】:

  • 表单字段的 id 默认为id_fieldname,因此在您的情况下为id_field1。为什么需要将其设置为其他内容?
  • 因为我添加了动态字段并且需要为每个字段设置不同的 id。

标签: python django django-templates django-views


【解决方案1】:

您可以使用Widget Tweaks。借助此功能,您可以向输入添加类并编辑其他属性。 在您的情况下编辑 id 属性,您可以像使用它一样 -

{% render_field form.fiel1|attr:"id:id_forfieldone" %}

这里也不错tutorial

【讨论】:

  • 这很完美,但是当我添加到“INSTALLED_APPS”时,我会收到此错误“尚未加载应用程序”
  • 发布您的错误的完整跟踪以及您在 settings.py 中添加的内容
  • 我编辑了问题以显示安装 Widget Tweaks 时出现的错误
猜你喜欢
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2020-05-15
  • 1970-01-01
相关资源
最近更新 更多