2016-05-01 24 views
0

私はかなり単純な問題があると思います。しかし、私は解決策を見つけることができません。私はPython/Djangoで書いていたので、しばらくしてきました。Django:int()引数は 'Plain'ではなく文字列または数字でなければなりません

私の単純な問題は、管理インターフェースで新しいPlainを追加しようとするときです。フォームで

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

サイトが正しくレンダリングされ、すべてがこれはモデルのコードです...

を追加するまでの罰金です:イムは、追加しようとすると

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) 

そして、同じことが起こっています列車または他のクラスの要素は、移動運動を拡張する。

+3

フルトレースバックしてください。 – Selcuk

答えて

2

あなたがsuperを呼び出すと、あなたはselfを渡す必要はありません。

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

また、通常、あなたがからそれを呼び出しているクラスを渡しsuperを呼び出したいことに注意してください、この場合Plain

+0

それは働いた、私は以前は同じことをやっていたので、どのように考えていない!ありがとう! – Yurrili

関連する問題