Crispy_forms_tags未在我的更新视图中用实例填写表单

时间:2019-04-26 13:39:39

标签: python django django-crispy-forms

我关于更新视图的问题 当我使用{{form.as_p}}时,在UpdateView上,它的工作原理是。但是,当我使用{%load crispy_forms_tags%}表单时,实例将无法填写。

我的View.py;

def ayarlar (request):
    userinstance=get_object_or_404(kullaniciBilgileri,id=1)
    form =  KullaniciForm(request.POST or None, instance=userinstance)
    if form.is_valid():
        form.save()
    context={
         'form':form,
    }
    return render(request, 'cek/ayar.html',context)

在我的模板{{forms.as_p}}中,但我想使用这种类型:


<form action="" method="post">
{% load crispy_forms_tags %}
    {% csrf_token %}
  <div class="form-row" >


    <div class="form-group col-md-6">
      <label>First Name</label>
      <input type="text" name='{{ form.firstName.name }}' class="form-control"  >
    </div>

    <div class="form-group col-md-6">
      <label>Last Name</label>
      <input type="text" name='{{ form.lastName.name }}' class="form-control"  >
    </div>


  </div>

但是这种类型不会用实例填充。

我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

{%load crispy_forms_tags%} 应该在表单标签上方。

模板

{% load crispy_forms_tags %}

  <form method="post">
    {% csrf_token %}
    {{ form|crispy }}
    <button type="submit" class="btn btn-primary">Sign in</button>
  </form>

带有自定义字段:

{% load crispy_forms_tags %}  #< should be above form tag

<form action="" method="post">
    {% csrf_token %}
  <div class="form-row" >
    <div class="form-group col-md-6">
      <label>First Name</label>
      <input type="text" name='{{ form.firstName.name|as_crispy_field }}' class="form-control"  >
    </div>

    <div class="form-group col-md-6">
      <label>Last Name</label>
      <input type="text" name='{{ form.lastName.name|as_crispy_field }}' class="form-control"  >
    </div>


  </div>