【Django】유저 등록 폼의 커스터마이즈
소개
이전에는 【Django】 사용자 등록 기능 구현이라는 기사를 만들었지만,
이때의 유저 등록 폼을 커스터마이즈하고 싶다고 생각했으므로 그에 관해서 조사한 것을 기사로 합니다.
상기의 기사의 내용이 끝나고 있는 상태로부터 진행해 가므로,
아직 보지 못한 분은 꼭 봐 주세요.
덧붙여서, 지금 현재의 내 양식은 다음과 같습니다.
맞춤형
forms.py를 다음과 같이 수정합니다.fields
의 부분은 표시하고 싶은 내용으로 해 주십시오.
forms.pyfrom django.contrib.auth.forms import UserCreationForm
from .models import User
class SignUpForm(UserCreationForm):
class Meta:
model = User
fields = ("username", "channel_name", "email", "password1", "password2")
### ここから追加
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs["class"] = "form-control"
__init__
를 오버라이드(override) 해 for문의 처리를 기술합니다.
무엇을하고 있는지, self.fields.values()
for문으로 순서대로 처리하고 있습니다.
self.fields.values()
의 안에는 class Meta:
로 기재한 fields의 내용이 들어 있습니다.
그들을 순서대로 꺼내 field.widget.attrs["class"] = "form-control"
class에 form-control을 설정하고 있습니다.
아마도 각 필드에 form-control
라는 클래스를 추가하고,
css를 반영하고 있다고 생각합니다.
잘못하면 죄송합니다.
상기 내용을 기술한 결과 아래와 같은 폼이 됩니다.
상당히 보기 쉬워졌습니다.
채널명은 임의 입력, 이메일 주소는 필수 입력이므로,
그 취지를 기재하려고 생각합니다.
forms.pyclass SignUpForm(UserCreationForm):
class Meta:
model = User
fields = ("username", "channel_name", "email", "password1", "password2")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs["class"] = "form-control"
self.fields["channel_name"].help_text = "任意入力" ### 追加
self.fields["email"].help_text = "必須入力" ### 追加
추가한 결과는 다음과 같습니다.
안전하게 추가되었습니다.
사이고에게
이번 기사는 짧지만, 더 이상 쓰는 일도 없기 때문에 이상으로 합니다. . . (웃음)
forms.py를 괴롭히는 것으로 상당히 다양한 수있을 것 같기 때문에,
여러분도 꼭 여러가지 시험해 보세요.
Reference
이 문제에 관하여(【Django】유저 등록 폼의 커스터마이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/onishi_820/items/eda93766a53b6c1c375f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from django.contrib.auth.forms import UserCreationForm
from .models import User
class SignUpForm(UserCreationForm):
class Meta:
model = User
fields = ("username", "channel_name", "email", "password1", "password2")
### ここから追加
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs["class"] = "form-control"
class SignUpForm(UserCreationForm):
class Meta:
model = User
fields = ("username", "channel_name", "email", "password1", "password2")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for field in self.fields.values():
field.widget.attrs["class"] = "form-control"
self.fields["channel_name"].help_text = "任意入力" ### 追加
self.fields["email"].help_text = "必須入力" ### 追加
이번 기사는 짧지만, 더 이상 쓰는 일도 없기 때문에 이상으로 합니다. . . (웃음)
forms.py를 괴롭히는 것으로 상당히 다양한 수있을 것 같기 때문에,
여러분도 꼭 여러가지 시험해 보세요.
Reference
이 문제에 관하여(【Django】유저 등록 폼의 커스터마이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/onishi_820/items/eda93766a53b6c1c375f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)