Удалить сообщения в профиле django - PullRequest
0 голосов
/ 07 мая 2020

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

views.py

    def profile(request, pk=None):
        if pk:
            post_owner = get_object_or_404(User, pk=pk)
            user_posts=Post.objects.filter(user_id=pk)
        else:
            post_owner = request.user
            user_posts=Post.objects.filter(user_id=pk)
        return render(request, 'profile.html', {'post_owner': post_owner, 'user_posts': user_posts,})

profile. html

    <div class="content-section">
      <div class="media">
        <img class="rounded-circle account-img" src="{{ user.profile.image.url }}">
        <div class="media-body">
          <h2 class="account-heading">{{ post_owner.username }}</h2>
          <p class="text-secondary">{{ post_owner.email }}</p>
        </div>
      </div>
      <div>
        {% for Post in user_posts %}
        <li class="list-group-item">{{ Post.text }}
          <a href="{% url 'profile_pk' pk=Post.user.pk %}">{{ Post.user }}</a>
          {% if Post.posti %}
            <img src="{{ Post.posti.url }}" alt="image here" style="max-width: 300px; max-height: 300px">
          {% endif %}
          {% if Post.user == user %}
            <div class="float-right">
              <form action="delete_image/{{ Post.id }}/" action="post">
                <button type="submit" class="btn btn-outline-danger btn-sm">Delete</button>
              </form>
            </div>
          {% endif %}
        </li>     
      {% endfor %}
    </div>
  </div>

urls .py

    urlpatterns = [
        path('profile/<int:pk>/', views.profile, name='profile_pk'),
        path('imagepost', views.uimage, name='image'),
        path('imagelist', views.imagelist, name='imagelist'),
        path('delete_image/<int:image_id>/', views.delete_image, name='delete_image'),
    ]

1 Ответ

0 голосов
/ 07 мая 2020

Все, что я сделал для решения этой проблемы, - это добавить оператор if в мой список изображений. html

    {% if image.user == user %}
      <a href="/profile">{{ image.user }}</a>
    {% else %}
      <a href="{% url 'profile_pk' pk=image.user.pk %}">{{ image.user }}</a>
    {% endif %}
...