Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表单在单个HTML中多次使用,避免重复id_Python_Django_Google Chrome_Django Forms_Django Templates - Fatal编程技术网

Python Django表单在单个HTML中多次使用,避免重复id

Python Django表单在单个HTML中多次使用,避免重复id,python,django,google-chrome,django-forms,django-templates,Python,Django,Google Chrome,Django Forms,Django Templates,Python 3.6.3,Django 1.11.8,Chrome版本63.0.3239.108(官方 构建(64位) 我有一个创建项目表单。 在html代码中添加了多个模态 我在表单类中使用了prefix属性,这样可以避免从其他表单同名字段重复ID 但是如何处理同一个表单在单个html中多次使用而创建的同名多个ID呢 form.py class CreateProjectForm(forms.ModelForm): prefix = 'create_project' class

Python 3.6.3,Django 1.11.8,Chrome版本63.0.3239.108(官方 构建(64位)

我有一个创建项目表单。 在html代码中添加了多个模态

我在表单类中使用了prefix属性,这样可以避免从其他表单同名字段重复ID

但是如何处理同一个表单在单个html中多次使用而创建的同名多个ID呢

form.py

class CreateProjectForm(forms.ModelForm):
    prefix = 'create_project'
    class Meta:
        model = Project
        fields = ['project_name', 'project_type', 'description']
        widgets = {'description': forms.TextInput(attrs={'placeholder': 'description'})}
我的表格很好用。但我一直在Chrome开发者控制台中遇到这个错误:

[DOM] Found 2 elements with non-unique id #id_create_project-description:  <input type=​"text" name=​"create_project-description" placeholder=​"description" maxlength=​"200" id=​"id_create_project-description">​ <input type=​"text" name=​"create_project-description" placeholder=​"description" maxlength=​"200" id=​"id_create_project-description">​
(index):1 [DOM] Found 2 elements with non-unique id #id_create_project-project_name: <input type=​"text" name=​"create_project-project_name" maxlength=​"50" required id=​"id_create_project-project_name">​ <input type=​"text" name=​"create_project-project_name" maxlength=​"50" required id=​"id_create_project-project_name">​
(index):1 [DOM] Found 2 elements with non-unique id #id_create_project-project_type: <select name=​"create_project-project_type" required id=​"id_create_project-project_type">​…​</select>​ <select name=​"create_project-project_type" required id=​"id_create_project-project_type">​…​</select>​
[DOM]找到了两个具有非唯一id的元素#id#U create_project-description:​ ​
(索引):1[DOM]发现2个元素具有非唯一id#id _create _project-project_name:​ ​
(索引):1[DOM]发现2个元素具有非唯一id#id(创建)project-project类型:​…​​ ​…​​
您有两个选择:

  • 在视图中创建单独的表单实例,每个实例具有不同的:

    然后分别呈现每个表单-前缀将确保它们具有唯一的ID

  • 如果出于某种原因,您希望使用相同的表单类,或者不知道要呈现多少实例,那么您可以省略ID,或者使用一些外部逻辑来确定ID的前缀

  • f1 = CreateProjectForm(prefix='f1')
    f2 = CreateProjectForm(prefix='f2')