我正在尝试找到一种将自定义 css 添加到生成的表单的方法。将自定义 css 添加到这些字段的合适方法是什么?
View .py
class ProfileUpdateView(UpdateView):
template_name = "users/profileUpdate.html"
model = models.User
fields = (
"first_name",
"last_name",
"about",
"displayImg",
)
def get_object(self, queryset=None):
return self.request.user
模型.py
class User(AbstractUser):
about = models.TextField(default="")
displayImg = models.ImageField(blank=True, upload_to="users")
配置文件更新.html
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button
class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline w-full">Update</button>
</form>
最佳答案
您可以定义一个 ModelForm
, 带有 css 属性,例如:
# app/forms.py
from django import forms
class ProfileForm(forms.ModelForm):
class Meta:
model = models.User
fields = (
'first_name',
'last_name',
'about',
'displayImg',
)
widgets = {
'first_name': forms.TextInput(attrs={'class': 'myclass'})
}
接下来,我们可以在基于类的 View 中“注入(inject)”该表单:
# app/views.py
from app.forms import ProfileForm
class ProfileUpdateView(UpdateView):
template_name = "users/profileUpdate.html"
model = models.User
form_class = ProfileForm
def get_object(self, queryset=None):
return self.request.user
关于Django:在 UpdateView 中添加自定义 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61860145/