2016-05-01 9 views
0

Ich habe eher einfaches Problem, denke ich. Aber ich kann keine Lösung finden. Es ist eine Weile her, seit ich in Python/Django schrieb ...Django: int() Argument muss eine Zeichenfolge oder eine Zahl sein, nicht 'Plain'

Mein einfaches Problem ist, wenn ich versuche, neue Plain von Admin-Schnittstelle hinzufügen.

TypeError: int() argument must be a string or a number, not 'Plain' 

-Site mit Form Rendering korrekt, alles bis Zugabe in Ordnung ist ...

Dies ist Code der Modelle:

class Locomotion(models.Model): 
    transportation_firm_name = models.CharField(max_length=200) 
    transportation_number = models.CharField(max_length=200) 
    departure_date_time = models.DateTimeField() 
    arrival_date_time = models.DateTimeField() 

    class Meta: 
     abstract = True 

    def __str__(self): 
     return self.transportation_name 


class Plain(Locomotion): 
    seat_number = models.CharField(max_length=200) 
    class_section = models.CharField(max_length=200) 

    def __init__(self, *args, **kwargs): 
     super(Locomotion, self).__init__(self, *args, **kwargs) 

    def __str__(self): 
     return "plain" 


class Train(Locomotion): 
    seat_number = models.CharField(max_length=200) 
    section_numbers = models.CharField(max_length=200) 

    def __init__(self, *args, **kwargs): 
     super(Locomotion, self).__init__(self, *args, **kwargs) 

Und das gleiche passiert, wenn im Versuch hinzufügen Train oder irgendein anderes Element der Klasse, die Locomotion verlängert.

+3

Vollständige Rückverfolgung bitte. – Selcuk

Antwort

2

Wenn Sie super nennen, brauchen Sie nicht self weitergeben müssen:

super(Plain, self).__init__(*args, **kwargs) 

Beachten Sie auch, dass in der Regel, die Sie wollen super rufen die Klasse vorbei, die Sie nennen es aus, Plain in diesem Fall .

+0

Es hat funktioniert, ich habe keine Ahnung wie, weil ich früher dasselbe gemacht habe! Vielen Dank! – Yurrili

Verwandte Themen