python - 我需要我的 Django get_absolute_url 来做两件不同的事情
问题描述
所以当我想开火时,我对我的一个模型有一个小问题get_absolute_url
。
当有人在我的网站上创建文章时,我希望它能够将他们返回到“审查中”页面,告诉他们该页面目前正在审查中。但问题是我的站点地图显示每篇文章都是www.example.com/under-review/
以www.example.com/post/example-slug
我通常会使用return reverse('post-detail', kwargs={'slug': self.slug})
解决问题的方法。但是随之而来的问题是,当有人创建文章时,它会将他们直接带到页面而不是under-review
页面。
模型:
def get_absolute_url(self):
# return reverse('post-detail', kwargs={'slug': self.slug})
return reverse('under-review')
理想情况下,我会拥有它,因此当有人发布帖子时,它会将他们带到under-review
页面同时提供服务,return reverse('post-detail', kwargs={'slug': self.slug})
因此它可以正确显示在我的站点地图中。
谢谢。
解决方案
我将在这里做一些假设,但这应该足以引导您朝着正确的方向前进。以下是一些伪代码,您可以根据需要进行调整。
假设您有一个Article
模型,例如:
class Article(models.Model):
is_reviewed = models.BooleanField()
然后您的post-detail
视图可以检查此字段:
def get_post_detail(request, article_id):
article = Article.objects.get(id=article_id)
if post.is_reviewed:
return render(request, 'myapp/article.html', {'article': article})
return render(request, 'myapp/under_review.html', {'article': article})
推荐阅读
- function - 在 Haskell 的递归函数中进行类型转换
- docker - 从 jmeter 测量 docker 容器的平均资源利用率
- c++ - 总和为 100 的 C++ 分组值
- react-native - 在 react native 中检查 pressable 的渲染方法
- python - 如何制作两个列表并根据另一个列表删除元素?
- python - Selenium ActionChains 键盘命令执行快捷键?
- java - Wala 调用图不完整,invokeinterface 指令在调用图中没有任何成功节点
- r - 从 coinmarketcap 抓取数据
- javascript - 如何将函数与另一个元素一起使用
- flutter - Deep AR Flutter:构建 AAR 时不支持直接本地 .aar 文件依赖项