Код: Выделить всё
{{ title }}
{{ message }}
{% if context_type == "account_deletion" %}
{% csrf_token %}
Enter Your Password to Confirm:
Delete Account
{% elif context_type == "item_deletion" %}
Are you sure you want to delete this item?
{% endif %}
{% if context_type == "item_deletion" %}
{% csrf_token %}
{{ submit_label }}
Cancel
{% endif %}
или просто для подтверждения удаления рекомендации или комментария. По какой -то причине модал работает просто отлично, когда я хочу удалить учетную запись, но если я хочу удалить рекомендацию из профиля пользователя, он не открывает модал и не бросает эту ошибку: < /p>
[! [Введите описание изображения здесь] [1]] [1] < /p>
Я решил , и после этого я предположил, что это может быть так, чтобы я получил к нему доступ, но снова не уверен. Я также попытался переместить модал, включив в нижнюю часть петли и за пределами цикла Рекомендация или способ настроить кнопку неправильно? но я не знаю. < /p>
Вот дополнительный код в любом случае для справки.
Код: Выделить всё
{% extends "base.html" %}
{% load static %}
{% block content %}
{{ profile.user.username }}'s Profile
Bio: {{ profile.bio }}
Location: {{ profile.location }}
{% if profile.avatar %}
[img]{{ profile.avatar.url }}[/img]
alt="{{ profile.user.username }}'s avatar"
class="profile-avatar">
{% else %}
[img]{% static [/img]
alt="Default avatar"
class="profile-avatar">
{% endif %}
{% if user.is_authenticated %}
{% if user == profile.user %}
[url={% url ]
Edit Profile
[/url]
[url={% url ]
Delete Account
[/url]
{% endif %}
{% endif %}
Recommendations
{% for recommendation in recommendations %}
{{ recommendation.content }}
{% if user == profile.user %}
[url={% url ]Edit[/url]
Delete
{% include "modal/modal.html" with modal_id="deleteRecommendationModal"|add:recommendation.id title="Confirm Recommendation Deletion" message="Are you sure you want to delete this recommendation?" context_type="item_deletion" action_url=recommendation.delete_url submit_class="btn-danger" submit_label="Delete Recommendation" %}
{% endif %}
{% endfor %}
{% include "modal/modal.html" with modal_id="deleteAccountModal" title="Confirm Account Deletion" message="This action is irreversible. Please confirm." context_type="account_deletion" action_url=delete_account_url submit_class="btn-danger" submit_label="Delete Account" %}
{% endblock %}
< /code>
(my profile.html code) < /p>
def profile(request, username):
"""
Profile view to display user profile along with their recommendations.
Args:
request (HttpRequest): The request object to handle the request.
username (str): The username of the user whose profile is being viewed.
Returns:
HttpResponse: Renders the profile page with the user's profile and recommendations.
"""
user = get_object_or_404(User.objects.select_related('profile'), username=username)
recommendations = Recommendation.objects.filter(user=user)
delete_account_url = reverse("delete_account", kwargs={"username": username})
return render(request, "profiles/profile.html", {
"profile": user.profile,
"recommendations": recommendations,
"can_edit": request.user == user,
"delete_account_url": delete_account_url,
})
< /code>
(представление моего профиля) < /p>
def delete_recommendation(request, recommendation_id):
"""
Handles the deletion of an existing recommendation.
Args:
request: The HTTP request object containing user data.
recommendation_id (int): The ID of the recommendation to be deleted.
Returns:
Redirects to the user's profile page after the recommendation is deleted.
Description:
This view allows the logged-in user to delete their own recommendation.
If the user is not the owner of the recommendation, they are redirected
to their profile page.
"""
recommendation = get_object_or_404(models.Recommendation, id=recommendation_id)
#defensive programming stop user from navigating via url to delete others recommendation
if recommendation.user != request.user:
return render(request, "error/403.html", status=403)
recommendation.delete()
messages.success(request, "Recommendation deleted successfully!")
return redirect('profile', username=request.user.username)
< /code>
Удалить рекомендацию Просмотр < /p>
class Recommendation(models.Model):
"""Recommendation model
Args:
models (django model class): class from djangos model framework
Description:
recommendation model for the database, once created here get's migrated
to the database and is used for allowing users to see active recommendations
made
"""
def __str__(self):
"""String func
Returns:
formatted string for admin viewing
"""
return f"{self.title} | Recommended by {self.user}"
#title of the recommendation
title = models.CharField(max_length=100, unique=True)
# user, our fk linking back to the user who created it
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name="recommendations",
)
# optional description field for the recommendation
description = models.TextField(max_length=200, blank=True, null=True)
# we add lat/long cords for rec to put on map (invisible to user)
latitude = models.FloatField(blank=True, null=True)
longitude = models.FloatField(blank=True, null=True)
# address of place in question
address = models.CharField(max_length=255, unique=True)
# Many-to-many field for categories
categories = models.ManyToManyField(
Category,
related_name="recommendations",
blank=True,
)
def average_score(self):
"""
Average Score Func
Args:
self: (num): number to average
Description:
Method to calculate the votes, the votes are added by users and calculated here
when the object (recommendation) is displayed, the vote is tallied and then shown
"""
votes = self.votes.all()
if votes.count() == 0:
# No votes, return 0 as default
return 0
total_score = sum(vote.vote for vote in votes)
# Return the average score, rounded to 1 decimal place
return round(total_score / votes.count(), 1)
def delete_url(self):
return reverse("delete_recommendation", args=[self.id])
urlpatterns = [
path("recommendations/", recommendations, name="recommendations"),
path("add_recommendation/", add_recommendation, name="add_recommendation"),
path("edit_recommendation//", edit_recommendation, name="edit_recommendation"),
path("delete_recommendation//", delete_recommendation, name="delete_recommendation"),
]
< /code>
Наконец -то рекомендационная модель (потому что учебник заставил меня добавить назад) и представления рекомендаций < /p>
Любая помощь будет оценена
[1] : https://i.sstatic.net/pt9blgfg.png
написан .html < /p>
From:
Delete
To:
Подробнее здесь: https://stackoverflow.com/questions/794 ... -the-other
Мобильная версия