2017-10-17 5 views
0

djangoGirlsチュートリアルの後で、私はdjangoを勉強して、簡単なCRUDを作成しようとしています。しかし、残念ながら彼らはデータを更新する方法を示していません。ユーザーのDBからのデータを更新するためのフォームへの変換方法

私はすでにInsertingReading/listingです。どうすればいいですかDeleteUpdate

私はそれを編集するためのリンクをユーザーに記載されている:

{% extends 'bloodDonation/master.html' %} 

{% block content %} 
     <h1 class="center">LIST DONATORS<h1> 
     <ul> 
     {% for donator in donators %} 
      <div class="row"> 
        <div class="container"> 
         <div class="col s12 blue-grey lighten-5 border_lighten"> 
          <div class="col s12 m12 padding_normal"> 
            {{ donator.name }} 
            <div id="icon" class="right"> 
              <a href="{% url 'edit_donator' %}" class="tooltipped" data-position="right" data-delay="50" data-tooltip="Editar Dados""> <i class="material-icons">edit</i></a> 
            </div> 
          </div> 
         </div> 
        </div> 
      </div> 
     {% endfor %} 
     </ul> 

{% endblock %} 

あなたが見ることができるように、私はedit_donator URLを指すaタグを持っています。
選択/クリックされたユーザーのID /データを渡して、データをプルしてフォームの中に投げることができますか?

フォームの作成:

class EditDonatorForm(forms.ModelForm): 
     class Meta: 
      model = Donator 
      fields = [ 'name', 'age', 'email', 'phone', 'bloodType', 'observation' ] 

はIDを渡ししようとすると:

url(r'^donator/(?P<pk>\d+)/update/$', views.edit_donator, name='edit_donator'), 

はどのようにしてデータベースからデータを取得し、すでに私はUpdateを行うことができるようにフォーム内に配置できますか?

答えて

1

別のリンクにデータを送信する必要はありません。同じURLの詳細を更新することができます。

はこれにあなたのHTMLを変更し

:あなたのビューの書き込みで

{% extends 'bloodDonation/master.html' %} 

{% block content %} 
    <h1 class="center">LIST DONATORS<h1> 
    <ul> 
    {% for donator in donators %} 
     <div class="row"> 
       <div class="container"> 
        <div class="col s12 blue-grey lighten-5 border_lighten"> 
         <div class="col s12 m12 padding_normal"> 
           {{ donator.name }} 
           <div id="icon" class="right"> 
             <a href="yoururl/?edit-donator={{ donator.id }}" class="tooltipped" data-position="right" data-delay="50" data-tooltip="Editar Dados""> <i class="material-icons">edit</i></a> 
           </div> 
         </div> 
        </div> 
       </div> 
     </div> 
    {% endfor %} 
    </ul> 

{% endblock %} 

if 'edit-donator' in request.GET: 
    edit_data = YourModel.objects.get(id=request.GET['edit-donator']) 
    form = EditDonatorForm(instance=edit_data) 

をこのモデルからデータを取得し、テンプレートに渡します。 これでアップデートを実行できます。 これが役に立ちますようお願いいたします:)

関連する問題