0

あるセクションの同じコードを別のセクションに複製したときにこのエラーが返される理由がわからないため、これはまったく奇妙です。いくつかの一般的なビュー (UpdateView) のタイトルのみを変更し、編集用にフォームを返すための get 関数を実行しないでください。単一の顧客、それがコードです:

URL

from django.conf.urls import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from . import views
from . import forms
from . import invoice


urlpatterns = patterns('',
    url(r'^pedidos/',views.PedidosListView.as_view(),name="pedidos_list"),
    url(r'^pedidos/add',views.add_pedido, name="pedido_add"),
    url(r'^pedidos/edit/(?P<pedido_id>\d+)',views.edit_pedido, name="pedido_edit"),
    url(r'^pedidos/delete/(?P<pedido_id>\d+)',views.delete_pedido, name="pedido_delete"),
    url(r'^pedido/(?P<pk>\d+)',forms.DetailPedido.as_view(), name="pedido_detail"),
    url(r'^pedido-pdf/(?P<pk>\d+)',invoice.detalle_pedido_pdf, name="pedido_detail_pdf"),
    url(r'^clientes/',views.ClientesListView.as_view(),name="clientes_list"),
    url(r'^clientes/edit/(?P<pk>\d+)$',forms.ClienteUpdateView.as_view(), name="clientes_edit"),
    url(r'^empleados/edit/(?P<pk>\d+)$',forms.EmpleadoUpdateView.as_view(),name="edit"),
    url(r'^empleados/',views.EmpleadoListView.as_view(),name="list"),

)

フォーム

class ClienteUpdateView(UpdateView):
    form_class = ClienteModelForm
    model = Cliente
    template_name = 'ventas/form.html'

    def get(self, request, **kwargs):
        self.object = Cliente.objects.get(pk=self.kwargs['pk'])
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        context = self.get_context_data(object=self.object, form=form)
        return self.render_to_response(context)

    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.save()
        return HttpResponseRedirect('ventas/clientes_list.html')

    def form_invalid(self,form):
      if self.request.is_ajax():
          return HttpResponseBadRequest(json.dumps(form.errors),
                                       mimetype="application/json")

JavaScript

$(".edit").click(function(ev){
    ev.preventDefault();
    var url = $(this).data('form');
    $.ajax({
        url: url,
        success: function(data, status){
            $('body').append($('<div id="myModal" class="modal hide fade">' + data + '</div>').modal());
            $("#myModal").find(".datePicker" ).datepicker({ dateFormat: "dd/mm/yy" });
        },
        error: function (xhr, ajaxOptions, thrownError) {
            console.log(xhr.status);
            console.log(xhr.responseText);
            console.log(thrownError);
        }
    })

    return false; // prevent the click propagation
});

html

  <button data-form="{% url 'ventas:clientes_edit' c.id %}" class="edit btn btn-mini btn-info">

ajax url で 'ventas/empleados/edit/someid' の値を変更した場合 ( do に対して複製したものと同じですClienteUpdateView。従業員の編集用のフォームを取得できますが、顧客に対して同じことを行うことはできません。何か不足しています。今は気がつかないこと? それは私の気を狂わせています! 何かアイデアはありますか?

よろしく!

4

0 に答える 0