feat: added comment function and new home page
This commit is contained in:
@@ -1,11 +1,19 @@
|
||||
from django.shortcuts import get_object_or_404, render
|
||||
from django.views.generic import ListView
|
||||
from django.views.generic import ListView, TemplateView
|
||||
from django.views.generic.edit import CreateView, UpdateView
|
||||
from django.urls import reverse_lazy
|
||||
from django.views.generic.detail import DetailView
|
||||
from django.views.generic.edit import FormMixin
|
||||
from .forms import CommentForm
|
||||
from django.urls import reverse
|
||||
|
||||
from .models import Ticket
|
||||
|
||||
|
||||
class HomeView(TemplateView):
|
||||
template_name = "ticketsystem/home.html"
|
||||
|
||||
|
||||
class TicketListView(ListView):
|
||||
model = Ticket
|
||||
template_name = "ticketsystem/index.html"
|
||||
@@ -27,10 +35,30 @@ class TicketListView(ListView):
|
||||
return context
|
||||
|
||||
|
||||
def detail(request, pk):
|
||||
ticket = get_object_or_404(Ticket, pk=pk)
|
||||
return render(request, "ticketsystem/detail.html", {"ticket": ticket})
|
||||
class TicketDetailView(FormMixin, DetailView):
|
||||
model = Ticket # <- das ist wichtig!
|
||||
template_name = "ticketsystem/detail.html"
|
||||
context_object_name = "ticket"
|
||||
form_class = CommentForm
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse("detail", kwargs={"pk": self.object.pk})
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
form = self.get_form()
|
||||
if form.is_valid():
|
||||
comment = form.save(commit=False)
|
||||
comment.ticket = self.object
|
||||
comment.author = request.user
|
||||
comment.save()
|
||||
return super().form_valid(form)
|
||||
return self.form_invalid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["form"] = self.get_form()
|
||||
return context
|
||||
|
||||
class TicketCreateView(CreateView):
|
||||
model = Ticket
|
||||
|
||||
Reference in New Issue
Block a user