teilchensammler/collector/views.py

39 lines
999 B
Python

import logging
from django.db import transaction
from django.db.models import QuerySet
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django.views import generic
from .models import Teil
logger = logging.getLogger(__name__)
class ListView(generic.ListView):
template_name = "collector/index.html"
context_object_name = "teile_list"
def get_queryset(self) -> QuerySet:
return Teil.objects.order_by("-modified")
class IndexView(ListView):
def get_queryset(self) -> QuerySet:
return super().get_queryset()[:10]
class DetailView(generic.DetailView):
model = Teil
template_name = "collector/detail.html"
def enter(request: HttpRequest) -> HttpResponse:
try:
with transaction.atomic():
Teil.objects.create(name=request.POST["new_name"])
except Exception:
logger.warning("Teil already existed")
return HttpResponseRedirect(reverse("collector:index"))