Форум сайта python.su
Заметил, что в представлениях повторяется код для def form_valid.
Как его вынести в mixin?
class MyCreate1(LoginRequiredMixin,CreateView): model = MyModel1 def form_valid(self, form): instance = ... return super(MyCreate1, self).form_valid(form)
Отредактировано django314 (Апрель 29, 2014 12:10:42)
Офлайн
django314
надо-бы почитать книгу по питону, если такие вопросы возникают.
Офлайн
Просто что-бы понять порядок вызова
class Class(object): def printt(self): print "Class" class Mixin1(Class): def printt(self): print "Mixin1" super(Mixin1, self).printt() class Mixin2(Class): def printt(self): super(Mixin2, self).printt() print "Mixin2" Mixin1().printt() print '\n' Mixin2().printt()
class Class(object): def ret(self, arg): print "Class", arg return arg class Mixin1(Class): def ret(self,arg): print "Mixin1", arg return super(Mixin1, self).ret(arg) class Mixin2(Class): def ret(self,arg): print "Mixin2", arg return super(Mixin2, self).ret(arg) Mixin1().ret('aaaa') print '\n' Mixin2().ret('bbbb')
class Class(object): def ret(self, arg): arg = arg + arg print "Class", arg return arg class Mixin1(Class): def ret(self,arg): arg = arg + arg*3 print "Mixin1", arg return super(Mixin1, self).ret(arg) class Mixin2(Class): def ret(self,arg): arg = arg + arg*2 print "Mixin2", arg return super(Mixin2, self).ret(arg) m1 = Mixin1() m1.ret('aaaa') print '\n' m2 = Mixin2() m2.ret('bbbb')
Отредактировано Singularity (Апрель 29, 2014 12:33:29)
Офлайн