python - 表单提交后重定向到下一个帖子
问题描述
我正在构建一个博客应用程序,我正在尝试实现一个功能 -
用户可以rate
在一个页面中写博客,用户点击Save Rate
后,用户将重定向到下一个评论博客页面,用户将访问下一个博客。但它不会重定向到下一个速率博客页面。
模型.py
class Blog(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=500)
Rating_Choice = [('1','1'), ('2','2')]
class Rate(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
ratings = models.CharField(max_length=1, choices=Rating_Choice)
视图.py
def rate_blog_post(request, blog_id):
obj = get_object_or_404(Blog, pk=blog_id)
next_blog = Blog.objects.filter(rate__ratings=None)
if request.method == 'POST':
form = Form(data=request.POST)
if form.is_valid():
post= form.save(commit=False)
post.user = request.user
post.blog = data
post.save()
# redirect here
return redirect('rate_blog_post', pk=data.id)
else:
form = Form()
context = {'obj':obj, 'form':form}
return render(request, rate_blog_post.html', context)
网址.py
path('rate_blog_post/<int:blog_id>/', views.rate_blog_post, name='rate_blog_post'),
- 表单工作正常,正在保存评分
到目前为止我尝试了什么?:
- 我尝试过使用
next_blog
类似的东西:-
return redirect('rate_blog_post', rate_blog_post=blog_id)
但它表明
找不到关键字参数“{'pk':2}”的“rate_blog_post”反向
注意:-
next_blog
包含多个博客,但我没有找到任何其他使用方式get_object_or_404(Blog,pk=blog_id, rate__ratings =None)
,所以它会重定向到下一个博客帖子 ID,它的评分 = 无
- 比我试过
get_object_or_404(Blog,pk=blog_id, rate__ratings =None)
比它显示的。
未找到关键字参数“{'pk': 3}”的“rate_blog_post”反向。尝试了 1 种模式:['rate_blog_post/(?P<blog_id>[0-9]+)/$']
我已经尝试了很多次,但没有为我工作。
我将非常感谢您的帮助。谢谢你
所以,我选择了评论。用户将重定向到下一个有选择的帖子None
,
解决方案
问题出在这里:
next_blog = Blog.objects.filter(rate__ratings=None)
return redirect('rate_blog_post', pk=data.id)
First :查询下一个要访问的单个博客,而不是多个
next_blog = Blog.objects.filter(rate__ratings="").order_by('id')[0]
第二:pk=next_blog.id
重定向时使用
return redirect('rate_blog_post', blog_id=next_blog.id)
ratings = models.CharField(max_length=1, choices=Rating_Choice, default="")
这应该可以解决问题
推荐阅读
- r - 将数据框中的列移动到 R 中其他列的下方
- javascript - 数组推送创建一个新数组,我只是想在原始数据中添加一条记录
- javascript - 如何删除括号、引号并在每个逗号后为 const 添加空格 - javascript
- scala - Jersey 2.29.1 响应编码问题与 AWS Api Gateway+ AWS Lambda +Scala
- javascript - 我在 reactjs 中收到 Html Webpack Plugin 错误
- python-3.x - 你们能帮我解决这个python循环吗?这让我很困惑
- autodesk-forge - 如何将相机向右旋转 90 度?
- r - 如何在 R 中华夫饼图的图例部分添加文本?
- function - 如何在 3d 空间中绘制参数曲线?
- c++ - 在未初始化的内存中构造对象数组