没有与给定查询匹配的Post,允许用户进行Post(django)
我试图允许用户创建类别和帖子(将被标记到某个类别),我认为我写的代码是正确的,但是我得到404错误,没有与给定查询匹配的帖子。 这是我的密码没有与给定查询匹配的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=
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"))