Как вы перенаправляете на указанную c позицию на странице в Django? - PullRequest
2 голосов
/ 30 марта 2020

Если бы я перечислял посты на странице через Django и сказал, что хочу дать пользователям возможность добавить в закладки пост. Я бы создал представление "bookmark_post", но мне пришлось бы перенаправить их куда-нибудь после завершения функции, верно? Как бы я перенаправил их точно в то же место, где они находились на странице, прежде чем они добавили ее в закладки, чтобы им не приходилось постоянно прокручивать страницу вниз, чтобы найти ее после закладки?

Мне кажется, что я как-то чрезмерно усложняя это, или, может быть, мне не нужно создавать совершенно новый вид, чтобы добавить в закладки пост. У тебя есть идеи? Еще раз спасибо.

Редактировать: Основной Вопрос сейчас: есть ли способ добавить в закладки сообщение без перенаправления страницы? В настоящее время у меня есть модель User, с ManyToManyField «закладок». Можно ли не использовать вид для добавления закладки в профиль пользователя? Я чувствую, что было бы утомительно ждать перенаправления страницы каждый раз, когда вы что-то добавляли в закладки, подобно тому, как это было бы утомительно, если бы вам приходилось ждать перенаправления страницы каждый раз, когда вам что-то «нравилось».

1 Ответ

1 голос
/ 30 марта 2020

Перенаправление на страницу можно сделать с помощью 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 для прокрутки к указанному элементу c по его css id, это означает, что вы хотите создать динамический c css id за каждый пост. Лучше всего это сделать с помощью pk. Скажем, это f"post_{post.pk}"

Таким образом, вы можете перенаправить пользователя на fwww.example.com/# {post.pk} `, и это перенаправит и прокрутит к этому указанному c сообщению.

Для перенаправлений используйте RedirectView.

. Чтобы предотвратить обновления, см. ref

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...