理解Django类视图混入

3 投票
1 回答
639 浏览
提问于 2025-04-17 20:29

Django中的Mixin是什么?我该如何开始使用它,什么时候使用比较好?有没有人能给我一个实际的例子,让我更好地理解它?

1 个回答

6

你有没有看过这个链接:https://docs.djangoproject.com/en/dev/topics/class-based-views/mixins/ ?

我不太确定我的例子是否相关,但这是我经常使用的一个混入类...

class OwnedObjectsMixin(object):

    def form_valid(self, form):
        form.instance.owner = self.request.user
        form.full_clean()
        if form.is_valid():
            return super(OwnedObjectsMixin, self).form_valid(form)
        else:
            return super(OwnedObjectsMixin, self).form_invalid(form)

    def get_queryset(self):
        self.user_id = self.request.user.id
        return self.model.objects.filter(owner=self.user_id)


class MyModelList(OwnedObjectsMixin, ListView):
    model = myModel

撰写回答