gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:27 26 4
gpt4 key购买 nike

在 Django 中使用 ModelForms 创建新用户是最佳实践还是必要的?我所做的是在 HTML 中创建一个表单,并将该表单 POST 到我的一个 View 中的一个函数以创建一个帐户。我问这个的原因是因为我是 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})

形式:

<form class="signup-form" method="post" action="/auth/signup/" id="create-account">
{% csrf_token %}
<input id="signup-username" name="username" type="text" placeholder="Username">
<input id="signup-firstname" name="firstname" type="text" placeholder="First Name">
<input id="signup-lastname" name="lastname" type="text" placeholder="Last Name">
<input id="signup-email" name="email" type="email" placeholder="Email">
<input id="signup-password" name="password" placeholder="Password" type="password"><div id="pswd-msg"></div>
<input id="signup-confirm-password" name="confirm-password" placeholder="Confirm Password" type="password"><div id="result"></div>
<button type="submit" class="btn btn-xl" id="create-acc-btn" name="signup-submit">Create Account</button>
</form>

显然,注册函数还没有将用户save() 到数据库,但我想知道这与使用 ModelForms 相比是否是正确的方法

最佳答案

你没有保存它。试试这个来创建新用户

user = User(username=username, first_name=firstname, last_name=lastname, email=email, password=password)
user.save()

还有

new_user = BeeradUser(user=user, activation_code=unique_key)
new_user.save()

关于python - 使用或不使用 ModelForms 创建新帐户并使用 HTML/CSS 进行设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com