我的网址视图:
urlpatterns = [
re_path(r'^$', views.Tweet_List_view.as_view(), name='list'),
# re_path(r'^$',views.listview, name='list'),
re_path(r'^(?P<pk>\d+)/$', views.Tweet_Detail_View.as_view(), name='detail'),
re_path(r'^(?P<pk>\d+)/delete$',
views.Tweet_Delete_View.as_view(), name='delete'),
re_path(r'^(?P<pk>\d+)/edit/$',
views.Tweet_Update_View.as_view(), name='update'),
re_path(r'^create/$', views.Tweet_Create_View.as_view(), name='create'),
]
我的views.py:
class Tweet_List_view(ListView):
# template_name = 'tweet/tweet_list.html'
model = Tweet
def get_queryset(self, *args, **kwargs):
queryset = Tweet.objects.all()
# print(self.request.GET)
if self.request.GET:
q = self.request.GET.get('q')
queryset = Tweet.objects.filter(
Q(content__icontains=q) |
Q(user__username__icontains=q)
)
return queryset
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
# print(self.kwargs)
context['tweet_form'] = TweetModelForm
context['create_url'] = reverse('list')
return context
我的html文件:
{% block content %}
<br/>
<div class="row">
<div class="col-sm-3 col-xs--12" style="background-color: red; height: 200px; border-radius: 30;">
{{request.user}}
</div>
<div class="col-sm-9" >
{% if not request.GET.q %}
<div>
<form method="POST" action={{create_url}} >
{% csrf_token %}
{{ tweet_form.as_p }}
<input type="submit" value="tweet" class="btn btn-primary" >
</form>
</div>
<hr/>
{% endif %}
我的推特列表视图中有一个表单,该表单提交后会重定向到当前的推特列表视图,因此在转到该页面时,它显示http 405错误。我已经看到具有相同的网址会显示此类错误,但是我具有不同的网址格式。