【问题标题】:How to load form with one value pre filled?如何加载预先填写一个值的表单?
【发布时间】:2017-03-03 07:29:56
【问题描述】:

我正在使用 Django 表单从用户那里收集信息。但是当我在页面之间切换时,我想使用 url 中的一个值显示在下一页的 from 中。 例子。 我有一个网址可以查看类似的书 http://127.0.0.1:8000/checkout/780374157067

780374157067 是本书的 ibn

下一页有一个表单,我在其中获取用户的 ISBN 和卡 ID。如何使用 ISBN 填写表格并向用户显示表格。而不是用户再次提供 ISBN。

ISBN 归档应在 URL 中预填 thw isbn。

HTML:

<div class ="col-md-3">
        <form method='POST' action=''>{%csrf_token%}
           {{template_form | crispy}}
           <input class="btn btn-lg btn-primary" type='submit'
                   value='Submit'/>
        </form>
</div>

Forms.py

class loansform(forms.Form):
    Isbn = forms.IntegerField()
    Card_id = forms.IntegerField()
    def clean_Isbn(self):
        isbn = self.cleaned_data.get("Isbn")
        isbn_string = str(isbn)
        if len(isbn_string) != 13:
            raise forms.ValidationError("Enter a valid ISBN-13")
        return isbn

views.py

template_form = loanform();

【问题讨论】:

  • 你能提供你的 HTML 吗?假设它是一个输入字段,您可以简单地提供一个值属性&lt;input type="text" name="isbn" value="DefaultValue"&gt;
  • 你使用的是django forms还是普通的html forms
  • 我正在使用 Django 表单

标签: python django html django-models django-forms


【解决方案1】:

在您看来,您可以先将初始数据放入表单中从 url 获取参数,然后:

data = {'isbn': 154646486,}
form = Myform(initial=data)

在 urls.py 中:

url(r'^checkout/(?P<isbn>\d+)/$',check_page)

查看示例:

def check_page(request, isbn):
     data = {'isbn': isbn,}
     form = Myform(initial=data)
     template = 'mytem.html'
     context = {'form': form,}
     return render(request, template, context)

【讨论】:

    【解决方案2】:

    假设你有类似的网址

    url(r'^checkout/(?P<isbn>\d+)/$')
    

    在你看来,当你实例化表单类时,像这样向它提供初始数据。

    form = YourFormClass(initial={'isbn': kwargs['isbn']})
    

    kwargs包含url参数,所以可以从url获取isbn。

    【讨论】:

    • 我也在使用 MyFormClass(request.POST 或 None)。这种情况下怎么办
    • 使用基于分类的视图 (FormView) 来处理表单实例化。方法 get_formform_valid 将完成这项工作。
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2015-10-14
    • 2019-09-10
    相关资源
    最近更新 更多