Django: Generic detail view must be called with either an object pk or a slug

后端 未结 6 845
别那么骄傲
别那么骄傲 2021-02-01 14:26

Getting this error when submitting the form associated with this view. Not sure what exactly is the problem, considering I have a form with a very similar structure and it works

6条回答
  •  醉话见心
    2021-02-01 15:03

    You need to pass an object identifier (pk or slug) so your views know which object they're operating on.

    Just to take an example from your urls.py:

    url(r'^facture/ajouter/$', Facture_Creer.as_view(), name='facture_creer'),
    url(r'^facture/modifier/(?P\d+)/$', Facture_Update.as_view(), name='facture_update'),
    

    See how the second one has (?P\d+)/? That is passing a pk to the UpdateView so it knows which object to use. Thus if you go to facture/modifier/5/, then the UpdateView will modify object with pk of 5.

    If you don't want to pass a pk or slug in your url, you'll need to override the get_object() method and get your object another way. Url here.

提交回复
热议问题