Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用或不使用ModelForms创建新帐户并使用HTML/CSS进行设计_Python_Html_Css_Django - Fatal编程技术网

Python 使用或不使用ModelForms创建新帐户并使用HTML/CSS进行设计

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

在Django中使用ModelForms创建新用户是最佳做法还是必要的?我所做的是用HTML创建一个表单,并将该表单发布到我的一个视图中的一个函数以创建一个帐户。我问这个问题的原因是因为我是Django新手,在使用Django时,我不确定与我自己用HTML/CSS创建表单相比,ModelForms是否允许灵活地设计和装饰生成HTML

用户模型:

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提供所有服务。不,这不是正确的方法。 Django
ModelForm
类对象的主要目标是将
Model
类对象连接到HTML
并充当中间类,在这里,您可以测试具有不仅仅是数据库需求的字段。它提供了诸如引发错误和进行API调用以同步captcha之类的功能,这将发生在后端,而不是用户的普通站点(html/css/javascript)

正如您所指出的,它确实允许自动生成字段和类似的内容,但这些功能比它的用途更重要。这些仍然可以用您自己的HTML/CSS进行设计和装饰,但是我前面提到的后端功能将不可用

与我自己用HTML/CSS创建表单相比,我不确定ModelForms是否允许灵活地设计和装饰生成HTML

&

我想知道与使用ModelForms相比,这是否是正确的方法

Django提供了一个包含了你的一些问题,也有一个包含了你所寻求的所有答案,但这里是TL;DR版本:

是的,Django提供所有服务。不,这不是正确的方法。 Django
ModelForm
类对象的主要目标是将
Model
类对象连接到HTML
并充当中间类,在这里,您可以测试具有不仅仅是数据库需求的字段。它提供了诸如引发错误和进行API调用以同步captcha之类的功能,这将发生在后端,而不是用户的普通站点(html/css/javascript)

正如您所指出的,它确实允许自动生成字段和类似的内容,但这些功能比它的用途更重要。这些仍然可以用您自己的HTML/CSS进行设计和装饰,但是我前面提到的后端功能将不可用

我不确定ModelForms是否允许