用户模型 Django 中的自定义字段
Custom fields in user model Django
我在 Django 中使用普通用户模型来保存我的用户。我想添加 first_name 和 last_name 字段,但我不知道如何扩展我的模型并使其工作。名字和姓氏应该在注册表中添加(我使用脆皮形式)。
注册查看
if request.method == "POST":
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save() # save user to database
username = form.cleaned_data.get('username')
messages.success(request, f"User {username} succesfully created! You can login now!")
return redirect('login')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
注册表
def __init__(self, *args, **kwargs):
super(UserRegisterForm, self).__init__(*args, **kwargs)
self.fields['password1'].label = "Hasło"
self.fields['password2'].label = "Powtórz hasło"
email = forms.EmailField()
name = forms.CharField(
label="Imię",
required=True,
max_length=30,
)
surname = forms.CharField(
label="Nazwisko",
required=True,
max_length=30,
)
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2', 'name', 'surname']
labels = {
'username': 'Nazwa użytkownika',
}
Django 的 User
model [Django-doc] 已经有 first_name
和 last_name
,您可以子类化 UserCreationForm
并为 first_name
和 [=12= 添加字段]:
from django.contrib.auth.forms import UserCreationForm
class UserRegisterForm(UserCreationForm):
def __init__(self, *args, **kwargs):
super(UserRegisterForm, self).__init__(*args, **kwargs)
self.fields['password1'].label = 'Hasło'
self.fields['password2'].label = 'Powtórz hasło'
email = forms.EmailField()
<b>first_name</b> = forms.CharField(
label='Imię',
required=True,
max_length=30,
)
<b>last_name</b> = forms.CharField(
label='Nazwisko',
required=True,
max_length=30,
)
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2'<b>, 'first_name', 'last_name'</b>]
labels = {
'username': 'Nazwa użytkownika',
}
我在 Django 中使用普通用户模型来保存我的用户。我想添加 first_name 和 last_name 字段,但我不知道如何扩展我的模型并使其工作。名字和姓氏应该在注册表中添加(我使用脆皮形式)。
注册查看
if request.method == "POST":
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save() # save user to database
username = form.cleaned_data.get('username')
messages.success(request, f"User {username} succesfully created! You can login now!")
return redirect('login')
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
注册表
def __init__(self, *args, **kwargs):
super(UserRegisterForm, self).__init__(*args, **kwargs)
self.fields['password1'].label = "Hasło"
self.fields['password2'].label = "Powtórz hasło"
email = forms.EmailField()
name = forms.CharField(
label="Imię",
required=True,
max_length=30,
)
surname = forms.CharField(
label="Nazwisko",
required=True,
max_length=30,
)
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2', 'name', 'surname']
labels = {
'username': 'Nazwa użytkownika',
}
Django 的 User
model [Django-doc] 已经有 first_name
和 last_name
,您可以子类化 UserCreationForm
并为 first_name
和 [=12= 添加字段]:
from django.contrib.auth.forms import UserCreationForm
class UserRegisterForm(UserCreationForm):
def __init__(self, *args, **kwargs):
super(UserRegisterForm, self).__init__(*args, **kwargs)
self.fields['password1'].label = 'Hasło'
self.fields['password2'].label = 'Powtórz hasło'
email = forms.EmailField()
<b>first_name</b> = forms.CharField(
label='Imię',
required=True,
max_length=30,
)
<b>last_name</b> = forms.CharField(
label='Nazwisko',
required=True,
max_length=30,
)
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2'<b>, 'first_name', 'last_name'</b>]
labels = {
'username': 'Nazwa użytkownika',
}