2017-10-17 1 views
0

djangoGirls 튜토리얼에 따라 장고를 공부하고 간단한 CRUD를 만들려고합니다. 그러나 불행히도 데이터를 업데이트하는 방법을 보여주지는 않습니다.사용자의 DB에서 데이터를 업데이트하는 방법

나는 이미 Inserting, Reading/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) 

를이 모델에서 데이터를 얻을 템플릿에 전달합니다. 이제 업데이트를 수행 할 수 있습니다. 희망이 있습니다.

관련 문제