1
請參考下面的代碼:屬性替代概念
from django.views.generic.edit import DeleteView
from .models import Course
class OwnerMixin(object):
def get_queryset(self):
qs = super(OwnerMixin, self).get_queryset()
return qs.filter(owner=self.request.user)
class OwnerCourseMixin(OwnerMixin):
model = Course
class CourseDeleteView(OwnerCourseMixin, DeleteView):
template_name = 'courses/manage/course/delete.html'
success_url = reverse_lazy('manage_course_list')
我可以很容易理解,通過添加template_name
和CourseDeleteView
success_url
屬性,我可以在覆蓋屬性。通過調用中的方法使這兩個屬性生效。
讓我困惑的是爲什麼我可以通過上面的代碼將model = Course
的屬性OwnerCourseMixin
轉換爲。他們之間沒有直接的繼承關係。對我來說完全是無稽之談。
很明顯,非常感謝。 – JianWei