2

如果我通过 Django 在页面上列出帖子,并说我想让用户选择为帖子添加书签。我会创建一个视图“bookmark_post”,但我必须在函数完成后将它们重定向到某个地方,对吧?我如何将他们重定向到他们在添加书签之前在页面上的完全相同的位置,这样他们就不必在添加书签后一直向下滚动才能找到它?

我觉得我有点过于复杂了,或者我不必创建一个全新的视图来为帖子添加书签。你有什么想法?再次感谢。

编辑:现在的主要问题:有没有办法在不重定向页面的情况下为帖子添加书签?我目前有一个用户模型,具有“书签”的 ManyToManyField。是否可以不使用视图将书签添加到用户的个人资料?我觉得每次为某些内容添加书签时都必须等待页面重定向会很乏味,类似于每次“喜欢”某些内容时必须等待页面重定向会很乏味。

4

1 回答 1

2

重定向到一个页面可以用 django 完成。滚动到某个部分,单靠django是做不到的,但是,用人脑和django可以做到,让我们看看滚动是如何工作的..

*{
  padding:0;
  margin: 0;
  box-sizing: border-box;
}

.container {
  height: 2000px;
  background-color: green;
}

.btn {
  text-decoration: none;
  color: black;
  width: 100px;
  padding: 20px;
  background: yellow;
}

.post{
  width: 400px;
  height: 150px;
  background-color: blue;
  margin-bottom: 10px;
  border: 1px solid white;
}
<a class="btn" href="#post_11">Go to post 11</a>

<div class="container">
  <div class="post" id="post_1"></div>
  <div class="post" id="post_2"></div>
  <div class="post" id="post_3"></div>
  <div class="post" id="post_4"></div>
  <div class="post" id="post_5"></div>
  <div class="post" id="post_6"></div>
  <div class="post" id="post_7"></div>
  <div class="post" id="post_8"></div>
  <div class="post" id="post_9"></div>
  <div class="post" id="post_10"></div>
  <div class="post" id="post_11"></div>
  <div class="post" id="post_12"></div>
</div>

我们使用a标签通过它滚动到特定元素css id,这意味着您希望css id为每个帖子创建一个动态。最好使用pk. 说是f"post_{post.pk}"

因此,您可以将用户重定向到fwww.example.com/#{post.pk}`,这将重定向并滚动到该特定帖子。

对于重定向,请使用RedirectView.

为防止刷新,请参阅此参考

于 2020-03-30T20:53:00.070 回答