我正在重复使用我的“创造”'编辑视图的表单。 '创建'路由工作得很好,但是当编辑'表单已提交,我的终端表示它会尝试POST /comment/edit/26/comment/add/
。
我正在尝试自定义类视图,因此切换到通用UpdateView:
class CommentUpdate(UpdateView):
model = Comment
fields = ['title']
仍然是一样的。所以我认为这可能是ModelForm或url的问题?
这里有form.py
from django import forms
from comments.models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
等。 - 表单本身如下:
<form id="new-form" role="form" method="post">
{% csrf_token %}
<p>{{ form.title }}</p>
<p>
<button type="submit">Submit</button>
<a href="/">Cancel</a>
</p>
</form>
aaand urls.py:
from django.conf.urls import url
from django.contrib import admin
from ratings.views import (home, CommentCreate, CommentUpdate)
urlpatterns = [
url(r'^$', home, name='comment-home'),
url(r'comment/add/$', CommentCreate.as_view(), name='comment-add'),
url(r'comment/edit/(?P<pk>\d+)/$', CommentUpdate.as_view(), name='comment-edit')
]
所以我已经读过一个表单将其动作自动设置为呈现它的视图。看起来它会得到(/comment/edit/26/
),但每次最后都会查到comment/add/
。不知道在哪里可以看。
答案 0 :(得分:1)
您需要在开始时锚定您的网址格式。
master
答案 1 :(得分:0)
尝试将以下内容添加到您的CommentCreate
和CommentUpdate
观看次数中:
form_class = CommentForm
action
上缺少的<form>
属性也可能会产生干扰。添加action=""
可能有所帮助。