代码之家  ›  专栏  ›  技术社区  ›  LuizGTVSilva

从Django表单恢复数据

  •  0
  • LuizGTVSilva  · 技术社区  · 2 年前

    这是我第一次参加Django Form挑战赛。 目前的挑战只是从HTML模板获取 last\u姓名 信息并从视图存储到数据库中。因此,我有一个场景如下:

    型号。py:

    class Person(models.Model):
        first_name = models.CharField(max_length=255)
        last_name = models.CharField(max_length=255)
    

    一个HTML模板,我将只在下面列出表单部分:

          <form action="{% url 'store' %}" method="post">
            {% csrf_token %}
            <div class="form-group row">
              <label for="last_name" class="col-sm-2 col-form-label">Last Name</label>
              <div class="col-sm-10">
                <input type="text" class="form-control" id="last_name" placeholder="Last Name">
              </div>
            </div>
    
            <div class="form-group row">
              <div class="col-sm-10">
                <button type="submit" class="btn btn-primary">Send Last Name</button>
              </div>
            </div>
          </form>
    

    以及视图。py本身。。。我创建了一个InsertLastName模型表单来存储表单中的数据,但没有成功。由于某种原因,当我试图调用表单时。cleaned\u data我发现有关is\u valid()验证的错误。看起来像这样,我不是从标签上得到信息的。

    class InsertLastName(forms.ModelForm):
        class Meta:
            model = Person
    
            fields = ['last_name']
            exclude = ['first_name']
    
    def index(request):
        persons = Person.objects.all()
        context = {'persons': persons}
        return render(request, '/index.html', context)
    
    def store(request):
        form = InsertLastName(request.POST or None)
        print(form.cleaned_data['last_name'])
    
        return HttpResponse("Storing a new Last Name object into storage")
    

    获取信息的正确方式是什么 last\u姓名 我的表单中的标签? 我在跟踪 documentation 并根据挑战模板进行编码。

    1 回复  |  直到 2 年前
        1
  •  0
  •   M.J.GH.PY    2 年前

    您只需为输入html标记设置attr name 示例:

    <input type="text" name="first">
    

    用于在视图中的函数存储中获取输入。py:

    request.POST.get("first")
    

    将其添加到表单中的html模板

    {{persons}}