Je travaille sur un projet de blog où il affiche tous les articles d'un blog sur la page d'accueil. J'ai une fonction d'édition pour chaque entrée de blog et contient deux options: publier et annuler.Django: Problème de redirection vers la page précédente après annulation de l'édition
c'est ce que ma forme ressemble
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'text',)
En views.py il ressemble à ceci:
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
En HTML, il ressemble à ceci:
{% extends 'blog/base.html' %}
{% block content %}
<h1>Edit post</h1>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default" >Publish</button>
<a class="btn btn-default" href="{% url 'post_detail' pk=? %}">Cancel</a>
</form>
{% endblock %}
urls. py
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
url(r'^post/new/$', views.post_new, name='post_new'),
url(r'^post/(?P<pk>\d+)/edit/$', views.post_edit, name='post_edit'),
url(r'^post/(?P<pk>\d+)/remove/$', views.post_remove, name='post_remove'),
url(r'^post/(?P<pk>\d+)/comment/$', views.add_comment, name='add_comment_to_post'),
url(r'^comment/(?P<pk>\d+)/remove/$', views.comment_remove, name='comment_remove'),
url(r'^comment/(?P<pk>\d+)/edit/$', views.comment_edit, name='comment_edit'),
]
Je ne pourrais pas savoir quel est le pk en html. J'ai essayé pk et post.pk mais fonctionne bien. Tout le monde peut aider. Merci
Où est le formulaire auquel vous essayez d'accéder dans vos modèles à l'aide du code '{{form.as_p}}'? Vous devez l'envoyer à travers vos points de vue. Utilisez également un contexte dict() pour résoudre votre problème "pk". Encore une fois, vous ne l'envoyez pas (pk) de votre point de vue. –
essayer 'post.id' –