2016-05-01 3 views
0

У меня довольно простая проблема, я думаю. Но я не могу найти решение. Прошло некоторое время с тех пор, как я писал в python/django ...Django: аргумент int() должен быть строкой или числом, а не «равным»

Моя простая проблема заключается в том, когда я пытаюсь добавить новый интерфейс Plain by admin.

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

Смежные вопросы