Я пытался обновить вид профиля с помощью UpdateView
в Django. Однако, хотя я делаю метки и заполнители отдельно, это не работает!
Вот мой код
view.py:
class UpdateProfileView(UpdateView):
model = models.User
template_name = "users/update-profile.html"
fields = (
"username",
"email",
"departure",
"order",
"kakaotalk",
)
def get_form(self, form_class=None):
form = super().get_form(form_class=form_class)
form.fields["username"].widget.attrs = {"placeholder": ""}
form.fields["username"].label = "이름"
form.fields["username"].help_text = ""
form.fields["email"].widget.attrs = {"placeholder": ""}
form.fields["email"].label = "이메일"
form.fields["departure"].widget.attrs = {"placeholder": ""}
form.fields["departure"].label = "부서"
form.fields["order"].widget.attrs = {"placeholder": ""}
form.fields["order"].label = "기수"
form.fields["kakaotalk"].widget.attrs = {"placeholder": ""}
form.fields["kakaotalk"].label = "카카오톡 ID"
return form
def get_object(self, queryset=None):
return self.request.user
users / update-profile. html:
{% block content %}
<div class="container lg:w-5/12 md:w-1/2 mx-auto my-10 flex flex-col items-center p-5 border border-gray-500 mt-24">
<form class="" method="post" action="{% url "users:updateprofile" %}" enctype="multipart/form-data">
{% csrf_token %}
<span class="font-bold">{{form.username}}</span>
<span class="font-bold text-red-600 text-center">{{form.username.errors}}</span>
<button class="btn mt-10">수정하기</button>
</form>
</div>
{% endblock content %}
Если я запускаю сервер с этими кодами, он выглядит как

метки и заполнители исчезли ...
А также, если я использую {{form}}
и {{form.errors}}
вместо {{form.username}}
и {{form.username.errors}}
, я могу видеть метки и заполнители, но похоже,

Я не хочу показывать сообщение об ошибке дважды ...!
Поэтому в этом случае как исправить эти коды, чтобы показать заполнители и метки, которые я делаю в view.py А как показать сообщение об ошибке один раз?