Как ограничить ссылку редактирования, отображаемую в шаблоне, в зависимости от того, является ли текущий пользователь владельцем поста блога? - PullRequest
0 голосов
/ 08 декабря 2018

Я новичок в Django и пытаюсь создать тестовый блог.

Все работает, за исключением того, что я не могу ограничить редактирование сообщения в блоге владельцем сообщения в блоге.

Моя первая попыткабыл успешным, но все, что я сделал, это «поднял 404» в функции просмотра после сравнения, был ли текущий пользователь таким же, как владелец записи в блоге.

Моя вторая попытка заключалась в добавлении сравнения в шаблон.Но все, что было сделано - это удалить ссылку редактирования для всех пользователей, даже для владельца.

Код шаблона приведен ниже.

{% extends "blogs/base.html" %}

{% block content %}

<h3> My Posts </h3>
<p>
  <a href="{% url 'blogs:new_blogpost' %}">Add a new blog post:</a>
</p>
<ul>
  {% for blogpost in blogposts %}     
    <li><strong>{{ user.username }} : {{ blogpost.owner }}</strong>
    <br>
    <strong>{{ blogpost.title }}</strong> - {{ blogpost.date_added }}
    <br>
    {{ blogpost.text }}
    <br> 
    <p>
    {% if user.username == blogpost.owner %}  
      <a href="{% url 'blogs:edit_blogpost' blogpost.id %}">edit blog post</a>
    {% endif %} 
    </p>

    </li>
  {% empty %}
    <li>No posts have been added yet.</li>
  {% endfor %}
</ul>
<a href="{% url 'blogs:new_blogpost' %}">Add a new blog post:</a>
{% endblock content %}

Примечание. Я используюДжанго 1.8.И для целей тестирования я включил оба значения в начале каждого элемента списка, чтобы подтвердить, какие пользователи являются владельцами того или иного поста.

Любые предложения.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Я думаю, что вы после этого:

{% if blogpost.owner.username == request.user.username %}  
    <a href="{% url 'blogs:edit_blogpost' blogpost.id %}">edit blog post</a>
{% endif %} 
0 голосов
/ 08 декабря 2018

Попробуйте проверить, является ли имя пользователя вашего автора тем, кто посещает ваш сайт ..

Как-то так.

{% if user.username == request.user.username %}  
    <a href="{% url 'blogs:edit_blogpost' blogpost.id %}">edit blog post</a>
{% endif %} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...