Python django.views.generic.DetailView() Examples

The following are 15 code examples of django.views.generic.DetailView(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module django.views.generic , or try the search function .
Example #1
Source File: views.py    From InvenTree with MIT License 6 votes vote down vote up
def get_context_data(self, **kwargs):
        """ Provide extra context information for the Build allocation page """

        context = super(DetailView, self).get_context_data(**kwargs)

        build = self.get_object()
        part = build.part
        bom_items = part.bom_items

        context['part'] = part
        context['bom_items'] = bom_items
        context['BuildStatus'] = BuildStatus

        context['bom_price'] = build.part.get_price_info(build.quantity, buy=False)

        if str2bool(self.request.GET.get('edit', None)):
            context['editing'] = True

        return context 
Example #2
Source File: views.py    From blog with Apache License 2.0 6 votes vote down vote up
def get_object(self):
        obj = super(DetailView, self).get_object()
        # 设置浏览量增加时间判断,同一篇文章两次浏览超过半小时才重新统计阅览量,作者浏览忽略
        u = self.request.user
        ses = self.request.session
        the_key = 'is_read_{}'.format(obj.id)
        is_read_time = ses.get(the_key)
        if u != obj.author:
            if not is_read_time:
                obj.update_views()
                ses[the_key] = time.time()
            else:
                now_time = time.time()
                t = now_time - is_read_time
                if t > 60 * 30:
                    obj.update_views()
                    ses[the_key] = time.time()
        md = markdown.Markdown(extensions=[
            'markdown.extensions.extra',
            'markdown.extensions.codehilite',
            TocExtension(slugify=slugify),
        ])
        obj.body = md.convert(obj.body)
        obj.toc = md.toc
        return obj 
Example #3
Source File: views.py    From blog with Apache License 2.0 6 votes vote down vote up
def get_object(self):
        obj = super(DetailView, self).get_object()
        # 设置浏览量增加时间判断,同一篇文章两次浏览超过半小时才重新统计阅览量,作者浏览忽略
        u = self.request.user
        ses = self.request.session
        the_key = 'is_read_{}'.format(obj.id)
        is_read_time = ses.get(the_key)
        if u != obj.author:
            if not is_read_time:
                obj.update_views()
                ses[the_key] = time.time()
            else:
                now_time = time.time()
                t = now_time - is_read_time
                if t > 60 * 30:
                    obj.update_views()
                    ses[the_key] = time.time()
        md = markdown.Markdown(extensions=[
            'markdown.extensions.extra',
            'markdown.extensions.codehilite',
            TocExtension(slugify=slugify),
        ])
        obj.body = md.convert(obj.body)
        obj.toc = md.toc
        return obj 
Example #4
Source File: views.py    From django-generic-scaffold with MIT License 6 votes vote down vote up
def get_detail_class_view(self):
        name = '{0}_{1}'.format(self.get_name(), 'DetailView')
        options_dict = {
            'kind': 'detail',
            'model': self.model,
        }
        if hasattr(self, 'detail_template_name') and self.detail_template_name:
            options_dict['template_name'] = self.detail_template_name

        parent_classes_list = [FallbackTemplateMixin]
        parent_classes_list.extend(self.detail_mixins)
        parent_classes_list.append(self.detail_view_class)

        klazz = type(name, tuple(parent_classes_list), options_dict )
        klazz.get_context_data = self.get_get_context_data(klazz)
        return klazz 
Example #5
Source File: abstract.py    From django-flexible-subscriptions with GNU General Public License v3.0 5 votes vote down vote up
def get_context_data(self, **kwargs):
        """Overriding get_context_data to add additional context."""
        context = super(DetailView, self).get_context_data(**kwargs)

        # Provides the base template to extend from
        context['template_extends'] = self.template_extends

        return context 
Example #6
Source File: views.py    From InvenTree with MIT License 5 votes vote down vote up
def get_context_data(self, **kwargs):

        ctx = super(DetailView, self).get_context_data(**kwargs)

        build = self.get_object()

        ctx['bom_price'] = build.part.get_price_info(build.quantity, buy=False)
        ctx['BuildStatus'] = BuildStatus

        return ctx 
Example #7
Source File: views.py    From dj4e-samples with MIT License 5 votes vote down vote up
def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['crazy_thing'] = 'CRAZY THING'
        return context

# There is much more to learn
# https://docs.djangoproject.com/en/3.0/ref/class-based-views/generic-display/#django.views.generic.detail.DetailView
# https://docs.djangoproject.com/en/3.0/ref/class-based-views/generic-display/#django.views.generic.detail.ListView 
Example #8
Source File: views.py    From blog with Apache License 2.0 5 votes vote down vote up
def get_context_data(self, **kwargs):
        context = super(DetailView, self).get_context_data(**kwargs)
        context['category'] = self.object.id
        return context 
Example #9
Source File: views.py    From blog with Apache License 2.0 5 votes vote down vote up
def get_context_data(self, **kwargs):
        context = super(DetailView, self).get_context_data(**kwargs)
        context['category'] = self.object.id
        return context 
Example #10
Source File: tests.py    From django-generic-scaffold with MIT License 5 votes vote down vote up
def test_views_have_correct_parent_class(self):
        self.assertEquals(self.list_view.__bases__[-1].__name__, "ListView")
        self.assertEquals(self.create_view.__bases__[-1].__name__, "CreateView")
        self.assertEquals(self.update_view.__bases__[-1].__name__, "UpdateView")
        self.assertEquals(self.delete_view.__bases__[-1].__name__, "DeleteView")
        self.assertEquals(self.detail_view.__bases__[-1].__name__, "DetailView") 
Example #11
Source File: tests.py    From django-generic-scaffold with MIT License 5 votes vote down vote up
def test_views_have_correct_parent_class(self):
        self.assertEquals(self.list_view.__bases__[-1].__name__, "ListView")
        self.assertEquals(self.create_view.__bases__[-1].__name__, "CreateView")
        self.assertEquals(self.update_view.__bases__[-1].__name__, "UpdateView")
        self.assertEquals(self.delete_view.__bases__[-1].__name__, "DeleteView")
        self.assertEquals(self.detail_view.__bases__[-1].__name__, "DetailView") 
Example #12
Source File: views.py    From izone with MIT License 5 votes vote down vote up
def get_object(self):
        obj = super(DetailView, self).get_object()
        # 设置浏览量增加时间判断,同一篇文章两次浏览超过半小时才重新统计阅览量,作者浏览忽略
        u = self.request.user
        ses = self.request.session
        the_key = 'is_read_{}'.format(obj.id)
        is_read_time = ses.get(the_key)
        if u != obj.author:
            if not is_read_time:
                obj.update_views()
                ses[the_key] = time.time()
            else:
                now_time = time.time()
                t = now_time - is_read_time
                if t > 60 * 30:
                    obj.update_views()
                    ses[the_key] = time.time()
        # 获取文章更新的时间,判断是否从缓存中取文章的markdown,可以避免每次都转换
        ud = obj.update_date.strftime("%Y%m%d%H%M%S")
        md_key = '{}_md_{}'.format(obj.id, ud)
        cache_md = cache.get(md_key)
        if cache_md:
            obj.body, obj.toc = cache_md
        else:
            md = markdown.Markdown(extensions=[
                'markdown.extensions.extra',
                'markdown.extensions.codehilite',
                TocExtension(slugify=slugify),
            ])
            obj.body = md.convert(obj.body)
            obj.toc = md.toc
            cache.set(md_key, (obj.body, obj.toc), 60 * 60 * 12)
        return obj 
Example #13
Source File: applications.py    From mitoc-trips with GNU General Public License v3.0 5 votes vote down vote up
def get_context_data(self, **kwargs):
        # Super calls DetailView's `get_context_data` so we'll manually add form
        context = super().get_context_data(**kwargs)

        apps = context['leader_applications']
        context['num_chairs'] = self.num_chairs
        context['needs_rec'] = self.needs_rec(apps)
        context['needs_rating'] = self.needs_rating(apps)
        context['pending'] = context['needs_rating'] or context['needs_rec']
        context['activity_enum'] = enums.Activity(self.kwargs['activity'])
        accepting_apps = models.LeaderApplication.accepting_applications(self.activity)
        context['new_applications_disabled'] = not accepting_apps

        context['apps_by_year'] = self._group_applications_by_year(apps)
        return context 
Example #14
Source File: applications.py    From mitoc-trips with GNU General Public License v3.0 5 votes vote down vote up
def get_context_data(self, **kwargs):
        # Super calls DetailView's `get_context_data` so we'll manually add form
        context = super().get_context_data(**kwargs)
        assigned_rating = self.assigned_rating
        context['assigned_rating'] = assigned_rating
        context['recommendations'] = self.get_recommendations(assigned_rating)
        context['leader_form'] = self.get_form()
        context['all_feedback'] = self.get_feedback()
        context['prev_app'], context['next_app'] = self.get_other_apps()

        participant = self.object.participant
        context['active_ratings'] = list(participant.ratings(must_be_active=True))
        participant_chair_activities = set(
            perm_utils.chair_activities(participant.user)
        )
        context['chair_activities'] = [
            label
            for (activity, label) in models.LeaderRating.ACTIVITY_CHOICES
            if activity in participant_chair_activities
        ]
        context['existing_rating'] = self.existing_rating
        context['existing_rec'] = self.existing_rec
        context['hide_recs'] = not (assigned_rating or context['existing_rec'])

        all_trips_led = self.object.participant.trips_led
        trips_led = all_trips_led.filter(self.before_rating, activity=self.activity)
        context['trips_led'] = trips_led.prefetch_related('leaders__leaderrating_set')
        return context 
Example #15
Source File: viste.py    From jorvik with GNU General Public License v3.0 5 votes vote down vote up
def get_object(self, queryset=None):
        obj = super(DetailView, self).get_object(queryset)
        if obj:
            obj.incrementa_visualizzazioni()
        return obj