>

(나쁜 영어로 죄송합니다)

객체를 삭제해야하지만 템플릿에있는 객체 목록에서 직접

예비 부품이있는 작업 지시가 있지만 작업 지시의 상세보기에서 뷰온 만 사용하여 예비 부품에 대한 deleteview를 작성하는 방법을 모르겠습니다. 아이디어는 사용자가 삭제 버튼을 클릭하는 것입니다.

이것은 예비 부품의 모델입니다

class OrderSparePart(models.Model):
    # Relations
    workorder = models.ForeignKey(
            WorkOrder,
            verbose_name=_('order'),
        )
    # Attributes - Mandatory
    spare_part = models.CharField(
            max_length=80,
            verbose_name=_('spare part'),
        )
    # Attributes - Optional
    price = models.DecimalField(
            max_digits=6,
            decimal_places=2,
            null=True,
            blank=True,
            verbose_name=_('price'),
        ) 
    # Object Manager
    # Custom Properties
    # Methods
    def get_absolute_url(self):
        return reverse('work_orders:detail', kwargs={'order_id': self.workorder.id})
    # Meta and String
    class Meta:
        verbose_name = _("order spare part")
        verbose_name_plural = _("order spare parts")

이것은 템플릿에서 보여지는 곳입니다

                 {% if spare_parts %}
                  <table class="table">
                    <thead>
                      <tr>
                        <th>{% trans "Spare Part" %}</th>
                        <th>{% trans "Price" %}</th>
                        <th>{% trans "Delete" %}</th>
                      </tr>
                    </thead>
                    <tbody>
                      {% for part in spare_parts %}
                      <tr>
                        <td><i class="fa fa-gear"></i> {{ part.spare_part }}</td>
                        {% if part.price %}
                        <td>$ {{ part.price }}</td>
                        {% else %}
                        <td></td>
                        {% endif %}
                        <td><a href="#"><i class="fa fa-trash"></i></a></td>
                      </tr>
                      {% endfor %}
                    </tbody>
                  </table>
                {% else %}
                <p>NO HAY REPUESTOS ASENTADOS AÚN</p>
                {% endif %}

이 아이디어는 예비 부품을 삭제하는 데 사용됩니다.

삭제보기와 이것에 대한 링크를 어떻게 만들어야합니까 ???

감사합니다!


  • 답변 # 1

    여기서 fa-thrash에서 id와 URL을 전달합니다 :-

    {% if spare_parts %}
                  <table class="table">
                    <thead>
                      <tr>
                        <th>{% trans "Spare Part" %}</th>
                        <th>{% trans "Price" %}</th>
                        <th>{% trans "Delete" %}</th>
                      </tr>
                    </thead>
                    <tbody>
                      {% for part in spare_parts %}
                      <tr>
                        <td><i class="fa fa-gear"></i> {{ part.spare_part }}</td>
                        {% if part.price %}
                        <td>$ {{ part.price }}</td>
                        {% else %}
                        <td></td>
                        {% endif %}
                        <td><a href="url:delete_view" part.id><i class="fa fa-trash"></i></a></td>
                      </tr>
                      {% endfor %}
                    </tbody>
                  </table>
                {% else %}
                <p>NO HAY REPUESTOS ASENTADOS AÚN</p>
                {% endif %}
    
    

    우리의 URL은 다음과 같이 소울 것입니다 :

    url(r'^delete/(?P<part_id>[0-9]+)/$', view.function, name='delete_view'),
    
    

    보기 :

    def function(request,part_id =None):
        object = YourModel.objects.get(id=part_id)
        object.delete()
        return render(request,'ur template where you want to redirect')
    
    

  • 답변 # 2

    for 루프 내부의 HTML 템플리트에서 <td> 내부의 양식 태그를 사용하십시오.  아래와 같이 삭제 버튼을 만들려면 (bootstrap3을 사용하는 경우 CSS 클래스가 작동합니다) :

    <form action="{% url 'delete_view' pk=part.pk %}" method="POST">
      {% csrf_token %}
      <input class="btn btn-default btn-danger" type="submit" value="Delete"/>
    </form>
    
    

    urls.py에 urlpattern 추가

    url(r'^delete-entry/(?P<pk>\d+)/$', views.DeleteView.as_view(), name='delete_view'),
    
    

    보기 삭제는views.py

    에서 아래와 같습니다.
    class DeleteView(SuccessMessageMixin, DeleteView):
    model = OrderSparePart
    success_url = '/'
    success_message = "deleted..."
    def delete(self, request, *args, **kwargs):
        self.object = self.get_object()
        name = self.object.name
        request.session['name'] = name  # name will be change according to your need
        message = request.session['name'] + ' deleted successfully'
        messages.success(self.request, message)
        return super(DeleteView, self).delete(request, *args, **kwargs)
    
    

    참고 : 필요한 가져 오기를 링크로 가져 오거나 pyCharm과 같은 IDE를 사용하는 경우 걱정할 필요가 없습니다.

관련 자료

  • 이전 nativescript iOS 빌드 실패
  • 다음 MySQL 데이터베이스에 연결하려고 할 때 PHP 오류