2017-03-18 21 views
0

Django Crudアプリケーションで追加/更新フォームを作成しました。データのためのモデルは、このようなものです:DJango CRUDアプリケーションの初期値をフォームで表示

class Proposal(models.Model): 
    org = models.CharField(max_length=200) 
    country = models.CharField(max_length=100) 
    recdate = models.DateField(blank=True, null=True) 
    subdate = models.DateField(blank=True, null=True) 
    status = models.CharField(max_length=20) 

とviews.pyに私が追加、更新のためのコードを次ています

def proposal_create(request, template_name='proposal/proposal_form.html'): 
    form = ProposalForm(request.POST or None) 
    if form.is_valid(): 
     form.save() 
     return redirect('list') 
    return render(request, template_name, {'form':form}) 

UPDATE

def proposal_update(request, pk, template_name='proposal/proposal_form.html'): 
    server = get_object_or_404(Proposal, pk=pk) 
    form = ProposalForm(request.POST or None, instance=server) 
    if form.is_valid(): 
     form.save() 
     return redirect('list') 
    return render(request, template_name, {'form':form}) 
を追加します

AND fina LLY私は私のテンプレートで、私はこのようにしているforms.pyています:私は直面しています問題はこれです

<div align="center" style=" margin-top: 150; padding-top: 30; padding-bottom: 20; text-align: right; border-style: double; width: 50%; float: center; margin-left: auto; margin-right: auto; background-color: grey; color: black; border-color: white; border-width: 5px; box-shadow: 10px 10px 5px #888888;"> 
<form method="post">{% csrf_token %} 
<div align="center" style="margin-right: auto; margin-left: auto; align-content: center; width: 80%; vertical-align: middle;"> 
<table class="table table-bordered"> 
    <tr> 
     <td valign="middle" width="30%"><label for="{{ form.org.id_for_label }}">Organization:</label></td> 
     <td valign="middle" width="70%"><input type="text" name="org" class="form-control" form="{form.org}"></td> 
    </tr> 

    <tr> 
     <td valign="middle" width="30%"><label for="{{ form.country.id_for_label }}">Country:</label></td> 
     <td valign="middle" width="70%"><input type="text" name="org" class="form-control" form="{form.country}"></td> 
    </tr> 

    <tr> 
     <td valign="middle" width="30%"><label for="{{ form.recdate.id_for_label }}">Received Date:</label></td> 
     <td valign="middle" width="70%"><input type="Date" name="org" class="form-control" form="{form.recdate}"></td> 
    </tr> 

    <tr> 
     <td valign="middle" width="30%"><label for="{{ form.subdate.id_for_label }}">Submission Deadline:</label></td> 
     <td valign="middle" width="70%"><input type="Date" name="org" class="form-control" form="{form.subdate}"></td> 
    </tr> 

    <tr> 
     <td valign="middle" width="30%"><label for="{{ form.status.id_for_label }}">Status:</label></td> 
     <td valign="middle" width="70%"><input list="status" name="org" class="form-control" form="{form.status}"> 
     <datalist id="status"> 
      <option value="Pending">Pending</option> 
      <option value="Submitted">Submitted</option> 
     </datalist> 
     </td> 
    </tr> 
    <tr></tr> 

</table> 
    <input type="submit" value="Submit" style="background-color: white; color: black;" /> 
    <a href="/list" style="background-color: white; color: black;"><input type="button" value="Cancel" /></a> 
</div> 

</form> 

**のためのフォームを追加完全に正常に動作しますが、編集するためのフォーム私はこのような単一波括弧を使用する場合のフィールドは、最初のデータが移入されていません。**

<td valign="middle" width="70%"><input type="text" name="org" class="form-control" form="{form.org}"></td> 

私はthesというような二重の中括弧を使用する場合、最初のデータが表示されます:

<td valign="middle" width="70%"><input type="text" name="org" class="form-control" form="{{form.org}}"></td> 

しかし、「>」の後に「>」と入力すると、フォームの後に大括弧が表示されます。

答えて

0

フォームタグを入力タグに入れるのではなく、django-widget-tweaksを使用してCSSクラスをフィールドに追加できるようになりました。

ので、代わりにこのようなコードを書くの:

<td valign="middle" width="70%"><input type="text" name="org" class="form-control" form="{form.org}"></td> 

私はちょうどこのように記述することができます。 {{form.org | ATTR: "タイプ:テキスト" | add_class: "フォーム・コントロール"}} https://pypi.python.org/pypi/django-widget-tweaks

私がしなければならなかったすべては、ダウンロードしてインストールジャンゴ・ウィジェットひねり

python -m pip install django-widget-tweaks 

さらなる情報はここで見つけることができています

関連する問題