当我在更新视图中发帖时,这会重定向到另一个网址,但不会重定向到我想要的网址。我有一个名为project
的应用程序。
这是我的project.urls.py
:
urlpatterns = [
...
path('edit/<int:pk>', ProjectUpdateView.as_view(), name='project_update'),
path('detail/<int:pk>', ProjectDetailView.as_view(), name='project_detail'),
...
]
这是我的views.py
:
class ProjectUpdateView(UpdateView):
model = Project
...
def get_success_url(self):
return reverse_lazy('project_detail', kwargs={'pk': self.object.pk})
我的models.py
:
class Project(models.Model):
name = models.CharField(max_length=100)
...
def get_absolute_url(self):
return reverse('project_detail', kwargs={'pk': self.pk})
当我对此网址/edit/5
发帖时,我会将我重定向到/edit
,此页面返回404错误,当然因为此网址不存在。
我怎样才能解决这个问题?我正在使用django 2.0
更新
这是我的模板project_edit.html
:
<form method='post'>
{% csrf_token %}
{{ form.as_p }}
<button type='submit' class='btn'>Aceoptar</button>
</form>
答案 0 :(得分:1)
我认为这与您的get_success_url
或get_absolute_url`方法无关。
听起来你的表单行为是:
<form method="post" action=".">
由于您是从/edit/5
发帖(没有斜杠),这意味着您要发布到/edit/
。
您可以将其更改为:
<form method="post" action="">
或反转网址
<form method="post" action="{% url 'project_update' project.pk %}">