2017-07-17 2 views
0

Ich benutze Klassen basierte Ansichten und ich erhalte beispielsweise zwei form_valids aus verschiedenen Ansichten.Django, Wie man mehrere Form_Valids behandelt

Class A(FormView) 

def form_valid() 
Does some stuff 
return super().form_valid 


Class B(FormView) 

def form_valid() 
Does some more stuff 
return super().form_valid 

Class C(Class A, Class B): 

def form_valid() 
takes form A and B stuff and does some more stuff 
return super().form_valid 

meine Klasse C nur von den ersten form_valid vererben und da dies ist ein großes Projekt, das ich zu vermeiden, ich versuche, die Ansichten neu zu gestalten, ich bin vererben können Sie einfach das Formular Sachen in der Klasse zu tun C.

Alle Vorschläge willkommen

Antwort

0

Dies ist keine gute Übung hier. Sie werden wahrscheinlich viel umgestalten müssen. Hab keine Angst davor. Der Grund dafür, etwas nicht zu tun, sollte nicht nur Zeit und Mühe sein, besonders wenn es auf Kosten der Codequalität geht.

Informationen zur Mehrfachvererbung finden Sie unter How does Python's super() work with multiple inheritance?.

Meine Lösung wäre, ziehen Sie die Is_valid-Methoden für A-und B-Ansichten aus den Ansichten und in Utility-Methoden. Dann rufen Sie diese in den is_valids für die Klassen A, B und C nach Bedarf auf.

Verwandte Themen