diff --git a/docker-compose.yml b/docker-compose.yml
index 9fefe531b98ec3be9b70f384615501796e7e5da5..d7ea7d161219a865c438259f3a0fc66eada1cb07 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -14,3 +14,4 @@ services:
       - ./wishlist-db/:/app/db/
     environment:
       - DEBUG=True
+      - SECRET_KEY=Test
diff --git a/templates/wishlist/wish_confirm_delete.html b/templates/wishlist/wish_confirm_delete.html
new file mode 100644
index 0000000000000000000000000000000000000000..45efd4bdc24bff29216fc94fb9b6f96cb33b30c5
--- /dev/null
+++ b/templates/wishlist/wish_confirm_delete.html
@@ -0,0 +1,17 @@
+{% extends 'wishlist/wishlist-base.html' %}
+
+{% block content %}
+    <form action="" method="post" class="m-auto w-3/4">
+        {% csrf_token %}
+        <div class="card bg-base-100  shadow-xl">
+            <div class="card-body">
+                <h2 class="card-title text-2xl">Wunsch wirklich löschen?</h2>
+                {% include "wishlist/wish_template.html" with wish=wish readonly=True %}
+                <div class="card-actions justify-end mt-4">
+                    <input type="submit" class="btn btn-secondary" value="Cancel" name="cancel" />
+                    <input type="submit" class="btn btn-error" value="Confirm deletion" name="confirm_delete" />
+                </div>
+            </div>
+        </div>
+    </form>
+{% endblock %}
diff --git a/templates/wishlist/wish_template.html b/templates/wishlist/wish_template.html
index d06619d1acf22047ddde8c4c45d715e3799b8745..7a8840f4504c42256dde6be9b811d9e6105f9c3c 100644
--- a/templates/wishlist/wish_template.html
+++ b/templates/wishlist/wish_template.html
@@ -47,30 +47,32 @@
                    rel="noopener noreferrer">Link</a>
             </div>
         {% endif %}
-        <div class="card-actions">
-            {% if wish.owner == user %}
-                <a class="btn btn-sm"
-                   href="{% url 'deleteWish' wish.id %}?list_owner={{ list_owner.id }}">Löschen</a>
-                <a class="btn btn-sm"
-                   href="{% url 'editWish' wish.id %}?list_owner={{ list_owner.id }}">Bearbeiten</a>
-            {% endif %}
-            {% if wish.wish_for != user and wish.is_reservation_possible %}
-                <a class="btn btn-sm"
-                   href="{% url 'reserveWish' wish.id %}?list_owner={{ list_owner.id }}">Reservieren</a>{% endif %}
-            {% if wish.wish_for != user and user in wish.reserved_by.all %}
-                <a class="btn btn-sm"
-                   href="{% url 'cancelReserveWish' wish.id %}?list_owner={{ list_owner.id }}">
-                    Nicht mehr reservieren
-                </a>
-            {% endif %}
-        </div>
+        {% if not readonly %}
+            <div class="card-actions">
+                {% if wish.owner == user %}
+                    <a class="btn btn-sm"
+                       href="{% url 'deleteWish' wish.id %}?list_owner={{ list_owner.id }}">Löschen</a>
+                    <a class="btn btn-sm"
+                       href="{% url 'editWish' wish.id %}?list_owner={{ list_owner.id }}">Bearbeiten</a>
+                {% endif %}
+                {% if wish.wish_for != user and wish.is_reservation_possible %}
+                    <a class="btn btn-sm"
+                       href="{% url 'reserveWish' wish.id %}?list_owner={{ list_owner.id }}">Reservieren</a>{% endif %}
+                {% if wish.wish_for != user and user in wish.reserved_by.all %}
+                    <a class="btn btn-sm"
+                       href="{% url 'cancelReserveWish' wish.id %}?list_owner={{ list_owner.id }}">
+                        Nicht mehr reservieren
+                    </a>
+                {% endif %}
+            </div>
+        {% endif %}
         {% if wish.dependent_wishes.all %}
             <div class="collapse collapse-arrow {% if wish.reserved_by.all|length > 0 %}collapse-open{% endif %}">
                 <input type="checkbox" />
                 <div class="collapse-title text-xl font-medium">Abhängige Wünsche</div>
                 <div class="collapse-content">
                     {% for dep_wish in wish.dependent_wishes.all %}
-                        {% include "wishlist/wish_template.html" with wish=dep_wish %}
+                        {% include "wishlist/wish_template.html" with wish=dep_wish readonly=readonly %}
                     {% endfor %}
                 </div>
             </div>
diff --git a/urls.py b/urls.py
index 045151b001c758efe374dc822d3ef6e2a569332f..77679f8458b005cd7aa0a573101b8e49863f37cf 100644
--- a/urls.py
+++ b/urls.py
@@ -8,7 +8,7 @@ urlpatterns = [
     path(
         "wish/add/<int:list_owner>", views.CreateWishView.as_view(), name="createWish"
     ),
-    path("wish/delete/<int:wish_id>", views.deleteWishView, name="deleteWish"),
+    path("wish/delete/<int:pk>", views.DeleteWishView.as_view(), name="deleteWish"),
     path(
         "wish/favorite/<int:wish_id>", views.toggleFavoriteView, name="toggleFavorite"
     ),
diff --git a/views.py b/views.py
index bb09b8d1695917670571396c7d61fe7b690bedf3..9b32c3f274f9d0d3fa450cd5ff1e805c1a6ece69 100644
--- a/views.py
+++ b/views.py
@@ -7,7 +7,7 @@ from django.forms import modelform_factory
 from django.http import HttpResponseRedirect, HttpRequest
 from django.shortcuts import render, get_object_or_404
 from django.urls import reverse
-from django.views.generic import CreateView, UpdateView, ListView
+from django.views.generic import CreateView, UpdateView, ListView, DeleteView
 
 from wishlist.mixins import IsWishOwnerMixin
 from wishlist.models import Wish, Reservation, Group
@@ -114,6 +114,13 @@ class CreateWishView(LoginRequiredMixin, CreateView):
         return context
 
 
+class DeleteWishView(LoginRequiredMixin, IsWishOwnerMixin, DeleteView):
+    model = Wish
+
+    def get_success_url(self):
+        return reverse("wishList", kwargs={"list_owner": self.request.GET["list_owner"]})
+
+
 @login_required
 def deleteWishView(request, wish_id):
     wish = get_object_or_404(Wish, pk=wish_id)