Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有与给定查询匹配的Post,允许用户进行Post(django)_Django - Fatal编程技术网

没有与给定查询匹配的Post,允许用户进行Post(django)

没有与给定查询匹配的Post,允许用户进行Post(django),django,Django,我试图允许用户创建类别和帖子(将被标记到某个类别),我认为我写的代码是正确的,但是我得到404错误,没有与给定查询匹配的帖子。 这是我的密码 this is my form class CategoryForm(forms.ModelForm): name = forms.CharField(max_length=128, help_text="aa") likes = forms.IntegerField(widget=forms.HiddenInput(), initial=

我试图允许用户创建类别和帖子(将被标记到某个类别),我认为我写的代码是正确的,但是我得到404错误,没有与给定查询匹配的帖子。 这是我的密码

this is my form
class CategoryForm(forms.ModelForm):
    name = forms.CharField(max_length=128, help_text="aa")
    likes = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
    slug = forms.CharField(widget=forms.HiddenInput, required=False)

    class Meta:
        model = Category
        fields =('name',)

class PostForm(forms.ModelForm):
    title = forms.CharField(max_length=128, help_text="bb")
    views = forms.IntegerField(widget=forms.HiddenInput(), initial=0)
    class Meta:
        model = Post
        fields = ['title', 'content', 'image', 'views', 'category']
这是我的看法

 #for adding category
    def add_category(request):
        if request.method == 'POST':
            form = CategoryForm(request.POST)
            if form.is_valid():
                form.save(commit=True)
                return index(request)
            else:
                print form.errors
        else:
            form = CategoryForm()

        return render(request, 'main/add_category.html', {'form':form})

    #for adding post/see diff style :)
    def add_post(request):
        context = RequestContext(request)
        if request.method == "POST":
            form = PostForm(request.POST, request.FILES)
            if form.is_valid():
                form.save(commit=True)
                return redirect(index)
            else:
                print form.errors
        else:
            form = PostForm()
        return render_to_response('main/add_post.html', {'form':form}, context)
这是我的网址

url(r'^add_post/', views.add_post, name='add_post'),
url(r'^add_category/$', views.add_category, name='add_category'),
]

最后是我的模板 {

%extends'base.html%}
{%block content%}
{%csrf_令牌%}
{{form}}
{%endblock%}

模板将表单发布到
main/add\u post/
,而视图的url是
add\u post/
。您应该使它们保持一致。

您应该使用
action=“{%url”main:add\u post“%}”
而不是
action=“/main/add\u post/”
。 还要检查在项目的URL.py主应用程序的URL中是否包含命名空间,如

url(r'^main/', include('main.urls', namespace="main"))
如果不使用名称空间,请更改为
action=“{%url”add_post“%}”
。 如果错误再次发生,请提供更多信息。
您在浏览器中输入哪个ulr来获取此错误?

对不起,我不确定您在说什么。那么我应该改变什么呢?你应该把这个
url(r'^add\u post/',views.add\u post,name='add\u post')
改成
url(r'^main/add\u post/$',views.add\u post,name='add\u post')
谢谢你的帮助,但不是这样,我用的是Django。
url(r'^main/', include('main.urls', namespace="main"))