正在尝试向django表单上的输入元素添加类属性。

正在尝试向django表单上的输入元素添加类属性。,django,forms,styles,Django,Forms,Styles,我试图在Django表单的一些输入元素中添加一个class属性,但我不确定具体怎么做。目前我只有一个占位符属性,我想开始添加类/id,这样我就可以设置表单的样式。我有两个问题。第一个问题是如何在以下代码中将class/id属性添加到现有占位符属性中: forms.py class EditUserProfileForm(forms.ModelForm): class Meta: model = models.UserProfile fields = '__

我试图在Django表单的一些输入元素中添加一个class属性,但我不确定具体怎么做。目前我只有一个
占位符
属性,我想开始添加类/id,这样我就可以设置表单的样式。我有两个问题。第一个问题是如何在以下代码中将class/id属性添加到现有占位符属性中:

forms.py

class EditUserProfileForm(forms.ModelForm):
    class Meta:
        model = models.UserProfile
        fields = '__all__'

        widgets = {
            'description': forms.TextInput(attrs={'placeholder': 'Motto'}),
            'city': forms.TextInput(attrs={'placeholder': 'City'}),
            'website': forms.TextInput(attrs={'placeholder': 'Website/Brand'}),
            'phone': forms.TextInput(attrs={'placeholder': 'Phone Number'}),
            }
其次,在我这样做之后,我需要进行迁移/迁移吗?根据我的理解,每当数据库级别发生更改时,您都需要迁移,但我不确定这完全意味着什么

任何洞见都会受到极大的赞赏。
首先,要向小部件添加一个类,只需以与占位符attr相同的方式声明它即可。例如

widgets = {
            'description': forms.TextInput(attrs={'class': 'my_class', 'placeholder': 'Motto'},)
           }

第二,无论何时更改模型,都应该执行makemigrations/migrate。以便根据新模型调整数据库表。阅读Django文档了解详细信息。

首先,要向小部件添加一个类,只需以与占位符attr相同的方式声明它。例如

widgets = {
            'description': forms.TextInput(attrs={'class': 'my_class', 'placeholder': 'Motto'},)
           }

第二,无论何时更改模型,都应该执行makemigrations/migrate。以便根据新模型调整数据库表。有关详细信息,请阅读Django文档。

您可以使用。借助于此,您可以将类添加到输入中并编辑其他属性。这里很好。

你可以用。借助于此,您可以将类添加到输入中并编辑其他属性。这很好。

下面我已经更改了您的表格。对于第二个问题,您需要调用makemigration吗?答案是否定的。当您对models.py、views.py或forms.py等进行任何更改时,您只需要调用makemigration和migrate。您不需要

class EditUserProfileForm(forms.ModelForm):

    class Meta:
        model = models.UserProfile
        fields = '__all__'

    widgets = {
        'description': forms.TextInput(attrs={'class':'#add class name','placeholder': 'Motto'}),
        'city': forms.TextInput(attrs={'class':'#add class name','placeholder': 'City'}),
        'website': forms.TextInput(attrs={'class':'#add class name','placeholder': 'Website/Brand'}),
        'phone': forms.TextInput(attrs={'class':'#add class name','placeholder': 'Phone Number'}),
        }

注意:您也不需要添加类名,除非您有特定的要求。如果您想为css添加类名,那么您只需编写
id\u description
id\u city
,就可以在浏览器开发者工具中检查您的id。

下面我已经更改了您的表单。对于第二个问题,您需要调用makemigration吗?答案是否定的。当您对models.py、views.py或forms.py等进行任何更改时,您只需要调用makemigration和migrate。您不需要

class EditUserProfileForm(forms.ModelForm):

    class Meta:
        model = models.UserProfile
        fields = '__all__'

    widgets = {
        'description': forms.TextInput(attrs={'class':'#add class name','placeholder': 'Motto'}),
        'city': forms.TextInput(attrs={'class':'#add class name','placeholder': 'City'}),
        'website': forms.TextInput(attrs={'class':'#add class name','placeholder': 'Website/Brand'}),
        'phone': forms.TextInput(attrs={'class':'#add class name','placeholder': 'Phone Number'}),
        }

注意:您也不需要添加类名,除非您有特定的要求。如果您想为css添加类名,那么您只需编写
id\u description
id\u city
,就可以在浏览器开发人员工具中检查您的id。

修改表单定义时,您没有进行数据库级别的更改,因此不需要迁移。在修改表单定义时,您没有进行数据库级别的更改,因此不需要迁移。我想知道是否可以在
dict
表示法中添加类。我尝试了
attrs=dict(class='my_class')
,但这显然不起作用,因为Django(即Python)希望在
class
之后有一个类声明,我想知道是否可以在
dict
表示法中添加类。我尝试了
attrs=dict(class='my_class')
,但这显然不起作用,因为Django(即Python)希望在
class