File: views.py

package info (click to toggle)
django-jinja 2.11.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 448 kB
  • sloc: python: 1,667; makefile: 17; javascript: 1
file content (104 lines) | stat: -rw-r--r-- 3,063 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from django.views.generic import View
from django.http import HttpResponse, StreamingHttpResponse
from django.shortcuts import render
from django.template import loader
from django.template.loader import render_to_string

from django_jinja.views.generic.detail import DetailView
from django_jinja.views.generic.edit import CreateView, DeleteView, UpdateView
from django_jinja.views.generic.list import ListView
from django_jinja.views.generic.dates import ArchiveIndexView, YearArchiveView, MonthArchiveView, WeekArchiveView, DayArchiveView, TodayArchiveView, DateDetailView

from .models import TestModel


class BasicTestView(View):
    def get(self, request, data=None):
        data = render_to_string("hello_world.jinja", {"name": "Jinja2"},
                                request=request)
        return HttpResponse(data)

class I18nTestView(View):
    template_name = "i18n_test.jinja"

    def get(self, request, data=None):
        class Author:
            name = "Freddy Fred"

        class Book:
            title = "Big 'ol Book"

        return render(request, self.template_name, {
            "v_index": "Index",
            "table_sort": lambda x, y: f"{x} {y}",
            "invoice_count": 1,
            "trimmed_invoice_count": 2,
            "author": Author(),
            "book": Book(),
        })

class I18nTestViewDTL(I18nTestView):
    template_name = "i18n_test.html"

class ContextManipulationTestView(View):
    def get(self, request):
        return render(request, "hello_world.jinja", {"name": "Jinja2"})

# ==== generic.detail ====
class DetailTestView(DetailView):
    model = TestModel

# ==== generic.edit ====
class CreateTestView(CreateView):
    model = TestModel
    fields = []
    template_name_suffix = '_create'

class DeleteTestView(DeleteView):
    model = TestModel

class UpdateTestView(UpdateView):
    model = TestModel
    fields = []
    template_name_suffix = '_update'

# ==== generic.list ====
class ListTestView(ListView):
    model = TestModel

# ==== generic.dates ====
class ArchiveIndexTestView(ArchiveIndexView):
    model = TestModel
    date_field = 'date'

class YearArchiveTestView(YearArchiveView):
    model = TestModel
    date_field = 'date'

class MonthArchiveTestView(MonthArchiveView):
    model = TestModel
    date_field = 'date'

class WeekArchiveTestView(WeekArchiveView):
    model = TestModel
    date_field = 'date'

class DayArchiveTestView(DayArchiveView):
    model = TestModel
    date_field = 'date'

class TodayArchiveTestView(TodayArchiveView):
    model = TestModel
    date_field = 'date'
    template_name_suffix = '_archive_today'

class DateDetailTestView(DateDetailView):
    model = TestModel
    date_field = 'date'
    template_name_suffix = '_date_detail'

class StreamingTestView(View):
    def get(self, request, *args, **kwargs):
        context = {"name": "Streaming Jinja2", "view": type(self)}
        template = loader.get_template('streaming_test.jinja')
        return StreamingHttpResponse(template.stream(context, request), content_type='text/html')