首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将普通HTML表单中的数据输入Django用户对象

将普通HTML表单中的数据输入Django用户对象
EN

Stack Overflow用户
提问于 2022-02-20 20:32:49
回答 1查看 37关注 0票数 0

我已经创建了自己的普通HTML表单,我希望将这些数据放入视图中,以创建默认的用户对象。

然而,我无法从表格中获得数据,以下是我的看法:

代码语言:javascript
复制
def registerPage(request):
    if request.method == "POST":
        print(request.POST.get('name'))
        print(request.POST.get('useremail'))
        username = request.POST.get('name')
        email = request.POST.get('useremail')
        password = request.POST.get('userpassword')
        user = User.objects.create_user(username, email, password)
        return HttpResponse("Printed to the console")
    else:
        return render(request, 'store/register.html')

结果,控制台打印“无”。

这是HTML:

代码语言:javascript
复制
                  <form class="mx-1 mx-md-4" method="POST" action="http://127.0.0.1:8000/register">
                        {% csrf_token %}
                    <div class="d-flex flex-row align-items-center mb-4">
                      <i class="fas fa-user fa-lg me-3 fa-fw"></i>
                      <div class="form-outline flex-fill mb-0">
                        <input type="text" id="name" class="form-control" />
                        <label class="form-label" for="name">Your Name</label>
                      </div>
                    </div>
  
                    <div class="d-flex flex-row align-items-center mb-4">
                      <i class="fas fa-envelope fa-lg me-3 fa-fw"></i>
                      <div class="form-outline flex-fill mb-0">
                        <input type="email" id="useremail" class="form-control" />
                        <label class="form-label" for="useremail">Your Email</label>
                      </div>
                    </div>
  
                    <div class="d-flex flex-row align-items-center mb-4">
                      <i class="fas fa-lock fa-lg me-3 fa-fw"></i>
                      <div class="form-outline flex-fill mb-0">
                        <input type="password" id="userpassword" class="form-control" />
                        <label class="form-label" for="userpassword">Password</label>
                      </div>
                    </div>
  
                    <div class="d-flex flex-row align-items-center mb-4">
                      <i class="fas fa-key fa-lg me-3 fa-fw"></i>
                      <div class="form-outline flex-fill mb-0">
                        <input type="password" id="form3Example4cd" class="form-control" />
                        <label class="form-label" for="form3Example4cd">Repeat your password</label>
                      </div>
                    </div>
  
  
                    <div class="d-flex justify-content-center mx-4 mb-3 mb-lg-4">
                      <button type="submit" class="btn btn-primary btn-lg">Register</button>
                    </div>
  
                  </form>

我该如何获得这些价值?或者至少把它们打印出来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-20 20:49:48

当您使用request.POST.get()时,您必须用输入名而不是输入id来标识输入。因此,您必须在输入中添加标记"name“:

代码语言:javascript
复制
<input type="text" id="name" class="form-control" name="name"/>
<input type="email" id="useremail" class="form-control" name="useremail"/>
....
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71198508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档