teilchensammler/collector/views.py

40 lines
999 B
Python
Raw Normal View History

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"))