2009-09-27 9 views
1

Lorsque j'utilise le Django update_object générique en vue de modifier, je reçois toujours cette erreur:Lorsque j'utilise la vue générique Django update_object

Page not found (404) Request Method: 
POST Request URL: 
http://127.0.0.1:8000/bookmarks/edit/ 

Mon url.py

(r'^edit/(?P<object_id>\d+)$', 
         update_object, 
         {'form_class':BookForm, 
          'post_save_redirect':'/', 
          'queryset':Book.objects.all() 
          }), 

Mon modèle:

<form action="." method="POST"> 
    {{form.as_p}} 
    <p> 
     <input type="submit" name="submit" value="Next?" /></button> 
    </p> 
</form> 

Pourquoi cela se produit-il?

Répondre

1

Faites ceci:

r'^edit/(?P<object_id>\d+)$' 
2

Dans votre message de modèle, l'URL est: /bookmarks/edit/. Il ne correspond pas ^edit/(?P<object_id>\d+)$.

donc modifier

<form action="." method="POST"> 

à

<form action="/bookmarks/edit/{{ object.id }}" method="POST"> 

puis ce sera le travail!

Ou modifiez l'URL ^edit/(?P<object_id>\d+)$ en ^edit/(?P<object_id>\d*)$.

Questions connexes