Python 使用或不使用ModelForms创建新帐户并使用HTML/CSS进行设计
在Django中使用ModelForms创建新用户是最佳做法还是必要的?我所做的是用HTML创建一个表单,并将该表单发布到我的一个视图中的一个函数以创建一个帐户。我问这个问题的原因是因为我是Django新手,在使用Django时,我不确定与我自己用HTML/CSS创建表单相比,ModelForms是否允许灵活地设计和装饰生成HTML 用户模型:Python 使用或不使用ModelForms创建新帐户并使用HTML/CSS进行设计,python,html,css,django,Python,Html,Css,Django,在Django中使用ModelForms创建新用户是最佳做法还是必要的?我所做的是用HTML创建一个表单,并将该表单发布到我的一个视图中的一个函数以创建一个帐户。我问这个问题的原因是因为我是Django新手,在使用Django时,我不确定与我自己用HTML/CSS创建表单相比,ModelForms是否允许灵活地设计和装饰生成HTML 用户模型: class BeeradUser(models.Model): user = models.OneToOneField(User) is
class BeeradUser(models.Model):
user = models.OneToOneField(User)
is_active = models.BooleanField(default=False)
activation_code = models.CharField(max_length=36)
注册功能:
def register(request):
if request.method == "POST":
username = request.POST.get("username")
firstname = request.POST.get("firstname")
lastname = request.POST.get("lastname")
email = request.POST.get("email")
password = request.POST.get("password")
payload = {
"username": username,
"firstname": firstname,
"lastname": lastname,
"email": email,
"password": password
}
try:
unique_key = str(uuid.uuid4())
user = User(username=username, first_name=firstname, last_name=lastname, email=email, password=password)
# Modified User class
new_user = BeeradUser(user=user, activation_code=unique_key)
except TypeError as e:
return render(request, "error/404.html")
return render(request, "success.html", {"payload": payload})
else:
print "there"
poop = {"data": "sdfsdf"}
return render(request, "fail.html", {"payload": poop})
表格:
{%csrf_令牌%}
创建帐户
显然,注册函数还没有将用户保存到数据库,但我想知道与使用ModelForms相比,这是否是正确的方法。您没有保存它。请尝试创建新用户
user = User(username=username, first_name=firstname, last_name=lastname, email=email, password=password)
user.save()
也
您没有保存它。请尝试此操作以创建新用户
user = User(username=username, first_name=firstname, last_name=lastname, email=email, password=password)
user.save()
也
您没有保存它。请尝试此操作以创建新用户
user = User(username=username, first_name=firstname, last_name=lastname, email=email, password=password)
user.save()
也
您没有保存它。请尝试此操作以创建新用户
user = User(username=username, first_name=firstname, last_name=lastname, email=email, password=password)
user.save()
也
那么,当用户未能输入所有必需字段时会发生什么情况?或者在
电子邮件
字段中输入非电子邮件地址的内容?您的代码无论如何都会轻松地创建用户,即使该实例无效
表单的主要职责是验证数据。当涉及到创建用户和添加密码时,这一点尤其重要。与Django表单自动创建的字段相比,您的字段的唯一区别在于
占位符
属性,您可以在表单描述中轻松设置该属性。那么,当您的用户无法输入所有必需的字段时会发生什么?或者在电子邮件
字段中输入非电子邮件地址的内容?您的代码无论如何都会轻松地创建用户,即使该实例无效
表单的主要职责是验证数据。当涉及到创建用户和添加密码时,这一点尤其重要。与Django表单自动创建的字段相比,您的字段的唯一区别在于
占位符
属性,您可以在表单描述中轻松设置该属性。那么,当您的用户无法输入所有必需的字段时会发生什么?或者在电子邮件
字段中输入非电子邮件地址的内容?您的代码无论如何都会轻松地创建用户,即使该实例无效
表单的主要职责是验证数据。当涉及到创建用户和添加密码时,这一点尤其重要。与Django表单自动创建的字段相比,您的字段的唯一区别在于
占位符
属性,您可以在表单描述中轻松设置该属性。那么,当您的用户无法输入所有必需的字段时会发生什么?或者在电子邮件
字段中输入非电子邮件地址的内容?您的代码无论如何都会轻松地创建用户,即使该实例无效
表单的主要职责是验证数据。当涉及到创建用户和添加密码时,这一点尤其重要。与Django表单自动创建的字段相比,您的字段的唯一区别是占位符
属性,您可以在表单描述中轻松设置该属性
与我自己用HTML/CSS创建表单相比,我不确定ModelForms是否允许灵活地设计和装饰生成HTML
&
我想知道与使用ModelForms相比,这是否是正确的方法
Django提供了一个包含了你的一些问题,也有一个包含了你所寻求的所有答案,但这里是TL;DR版本:
是的,Django提供所有服务。不,这不是正确的方法。
DjangoModelForm
类对象的主要目标是将Model
类对象连接到HTML
并充当中间类,在这里,您可以测试具有不仅仅是数据库需求的字段。它提供了诸如引发错误和进行API调用以同步captcha之类的功能,这将发生在后端,而不是用户的普通站点(html/css/javascript)
正如您所指出的,它确实允许自动生成字段和类似的内容,但这些功能比它的用途更重要。这些仍然可以用您自己的HTML/CSS进行设计和装饰,但是我前面提到的后端功能将不可用
与我自己用HTML/CSS创建表单相比,我不确定ModelForms是否允许灵活地设计和装饰生成HTML
&
我想知道与使用ModelForms相比,这是否是正确的方法
Django提供了一个包含了你的一些问题,也有一个包含了你所寻求的所有答案,但这里是TL;DR版本:
是的,Django提供所有服务。不,这不是正确的方法。
DjangoModelForm
类对象的主要目标是将Model
类对象连接到HTML
并充当中间类,在这里,您可以测试具有不仅仅是数据库需求的字段。它提供了诸如引发错误和进行API调用以同步captcha之类的功能,这将发生在后端,而不是用户的普通站点(html/css/javascript)
正如您所指出的,它确实允许自动生成字段和类似的内容,但这些功能比它的用途更重要。这些仍然可以用您自己的HTML/CSS进行设计和装饰,但是我前面提到的后端功能将不可用
我不确定ModelForms是否允许