小编Gre*_*gor的帖子

Django:为基于类的视图扩展get_object

作为一个非专业的Python程序员,我正在寻找有关扩展Django的SingleObjectMixin类的get_object方法的方式的反馈.

对于我的大多数细节视图,使用pk或slugfield进行查找很好 - 但在某些情况下,我需要根据其他(唯一)字段检索对象,例如"username".我将Django的DetailView子类化,并修改了get_object方法,如下所示:

# extend the method of getting single objects, depending on model
def get_object(self, queryset=None):

    if self.model != mySpecialModel:
        # Call the superclass and do business as usual 
        obj = super(ObjectDetail, self).get_object()
        return obj

    else:
        # add specific field lookups for single objects, i.e. mySpecialModel
        if queryset is None:
            queryset = self.get_queryset()

        username = self.kwargs.get('username', None)
        if username is not None:
            queryset = queryset.filter(user__username=username)
        # If no username defined, it's an error.
        else:
            raise AttributeError(u"This generic detail …
Run Code Online (Sandbox Code Playgroud)

django subclassing django-generic-views

7
推荐指数
1
解决办法
6597
查看次数

标签 统计

django ×1

django-generic-views ×1

subclassing ×1