python - 如何删除答案(正文中的代码)?
问题描述
我正在创建一个用于练习的问答网站,我创建了答案和问题模型并将它们链接在一起,但是我无法访问我为删除答案模型设置的模板,我创建了一个DeleteView
删除问题的模板。这是代码:
视图.py:
class Politics_post_details(DeleteView):
model = PoliticsPost
context_object_name = 'politicsposts'
pk_url_kwarg = 'qid'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# now you can get any additional information you want from other models
question = get_object_or_404(PoliticsPost, pk=self.kwargs.get('qid'))
context['answers'] = Answer.objects.filter(post=question).order_by('-date_posted')
return context
class AnswerDelete(UserPassesTestMixin,DetailView):
model = Answer
success_url = reverse_lazy('Lisk home')
pk_url_kwarg = 'aid'
def test_func(self):
answer = self.get_object()
if self.request.user ==answer.author:
return True
return False
urls.py(不是根):
path('politicspost/<int:qid>/createanswer/',views.CreateAnswer.as_view(template_name='lisk_templates/createanswer.html'),name = 'Answer'),
path('politicspost/<int:qid>/answer/<int:aid>/delete/',views.AnswerDelete.as_view(template_name = 'lisk_templates/answer_delete.html'),name='Answer_Delete'),
path('politicspost/<int:qid>/',views.Politics_post_details.as_view(template_name='lisk_templates/politics_post_details.html'),
我创建了模板,但每当我尝试访问它时,它都会给我一个错误,如下所示:
NoReverseMatch at /politicspost/29/
Reverse for 'Answer_Delete' with arguments '(36,)' not found. 1 pattern(s) tried: ['politicspost/(?P<qid>[0-9]+)/answer/(?P<aid>[0-9]+)/delete/$']
提前致谢。
answer_delete.html:
{%extends "lisk_templates/base.html"%}
{% block title %}
Page title
{% endblock title %}
{% block body%}
<div class="feed" style="background-color:lightred;"><form method="POST">
{% csrf_token %}
<h3>Are you sure that you want to delete this answer: <br>
{{ object.content }}</h3>
<button id="signin" type="submit">Yes</button> <a href="{% url 'politics_post_details' object.id %}" style="margin-left:10px;"> No</a>
</form>
</div>
{% endblock body %}
解决方案
可能这可能对您有用,因为您从未使用过 DeleteView 的导入
from django.views.generic import DeleteView
"""This Is From My Blog App, That I Used For My Blog App, Hope This Will Help"""
class PostDeleteView(LoginRequiredMixin, DeleteView):
model = Post
success_url = reverse_lazy('post_list')
快乐编码,如果有任何问题,请告诉我,我支持你!
推荐阅读
- javascript - Vue-Router (v.3):addRoute 方法不会覆盖共享相同路径的现有路由
- go - Golang 选择不进入“默认”情况
- google-coral - 无法在 Raspbery Pi 上更新 Coral SW
- c# - List.IndexOf(x):错误=>方法'IndexOf'没有重载在c#中需要1个参数
- c# - Blazor 中的本机窗口
- c# - 使用 Octokit.net 从私有 GitHub 存储库发布下载资产
- java - Gradle Build failed 无法通知项目评估监听器
- reactjs - 总是在 MERKLE 中获取带有 hreflang 标记的缺少返回链接
- javascript - 将 API 响应数据设置为局部变量
- javascript - Vue.js - Vuelidate 自定义验证器