S'il vous plaît se référer au code suivant:concept de substitution d'attribut dans l'héritage multiple (Django-mixin)
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')
je pourrais facilement comprendre qu'en ajoutant template_name
et success_url
attribut dans CourseDeleteView
, je pouvais passer outre l'attribut dans DeleteView
. Pour que les deux attributs prennent effet en appelant la méthode dans DeleteView
.
Ce qui m'a rendu confus est pourquoi je pourrais transférer l'attribut model = Course
dans OwnerCourseMixin
à DeleteView
par le code ci-dessus. Il n'y a pas de relation d'héritage directe entre eux. Ça n'a aucun sens.
C'est clair, merci beaucoup. – JianWei