Django - 为什么编辑表单发布以编辑url +创建url?

时间:2016-05-07 00:30:13

标签: python django forms

我正在重复使用我的“创造”'编辑视图的表单。 '创建'路由工作得很好,但是当编辑'表单已提交,我的终端表示它会尝试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/。不知道在哪里可以看。

2 个答案:

答案 0 :(得分:1)

您需要在开始时锚定您的网址格式。

master

答案 1 :(得分:0)

尝试将以下内容添加到您的CommentCreateCommentUpdate观看次数中:

    form_class = CommentForm

action上缺少的<form>属性也可能会产生干扰。添加action=""可能有所帮助。