【发布时间】:2019-11-26 07:46:27
【问题描述】:
我正在参加在线 Djago 课程,没有人可以寻求帮助。我很乐意获得任何帮助和提示。
我正在学习创建表单(登录/登录)。
到目前为止,我在models.py做过
from django.db import models
from django.contrib import auth
class User(auth.models.User,auth.models.PermissionsMixin):
def __str__(self):
return "@{}".format(self.username)
在forms.py
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm
class UserCreateForm(UserCreationForm):
class Meta:
fields = ('username','email','password1','password2')
model = get_user_model()
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.fields['username'].label = 'Display Name'
self.fields['email'].label = 'Email Address'
我想添加额外的 firelds 作为姓,但是当我在 class meta 中添加 'surname' fields (forms.py) 时出现错误,但是在线培训说我可以轻松添加其他字段。你能告诉我我做错了什么以及如何添加这个字段吗?
当我在forms.py 中添加这些字段'surname' 时:
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm
class UserCreateForm(UserCreationForm):
class Meta:
fields = ('username','email','surname','password1','password2')
model = get_user_model()
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.fields['username'].label = 'Display Name'
self.fields['surname'].label = 'Surname'
self.fields['email'].label = 'Email Address'
它给出以下错误:
raise FieldError(message)
django.core.exceptions.FieldError: Unknown field(s) (surname) specified for User
在views.py我啊:
from django.shortcuts import render
from django.urls import reverse_lazy
from django.views.generic import CreateView,TemplateView
from . import forms
class SignUp(CreateView):
form_class = forms.UserCreateForm
success_url = reverse_lazy('login')
template_name = 'accounts/signup.html'
【问题讨论】:
-
你能详细说明错误吗?堆栈跟踪会很有帮助。
-
您需要将
surname字段添加到您的User模型并运行migrations。然后您可以将该字段添加到您的UserCreateForm -
我添加了错误
-
我无法进行迁移,因为终端显示我在上面发布的错误,它说“姓氏”是未知的花边