2017-02-02 6 views
0

Я понимаю, что для такого типа необходимо указать default = 'value'. Я консультировался с решениями над StackOverFlow, но не мог избавиться от этой ошибки. С по умолчанию или без него я получаю эту ошибку при сохранении из админ-форм. Ошибка в модуле Packeges при функции init. Пожалуйста, порекомендуйте. Ниже мой код:TypeError: __init __() принимает ровно 2 аргумента (1 данный) Колба

class Packeges(db.Model): 
    __tablename__ = 'packages' 
    id = db.Column(db.Integer, primary_key=True) 
    package_name = db.Column(db.String(30), default='Add Package Here') 
    def __init__(self, package_name): 
     self.package_name = package_name 


admin.add_view(ModelView(Packeges, db.session)) 

class UserSubscription(db.Model): 
    __tablename__ = 'user_subscription' 
    id = db.Column(db.Integer, primary_key=True) 
    user_profile = db.Column(db.String(80), unique=True) 
    package_name = db.Column(db.Integer, db.ForeignKey(Packeges.id)) 
    packages = db.relationship(Packeges, backref='package') 
    timestamp = db.Column(db.DateTime) 
    expiry = db.Column(db.DateTime) 

    def __init__(self, user_profile, package_name, timestamp, expiry): 
     self.user_profile = user_profile 
     self.package_name = package_name 
     self.timestamp = timestamp 
     self.expiry = expiry 
admin.add_view(ModelView(UserSubscription, db.session)) 

Traceback:

TypeError 
TypeError: __init__() takes exactly 2 arguments (1 given) 

Traceback (most recent call last) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1994, in __call__ 
return self.wsgi_app(environ, start_response) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1985, in wsgi_app 
response = self.handle_exception(e) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1540, in handle_exception 
reraise(exc_type, exc_value, tb) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1982, in wsgi_app 
response = self.full_dispatch_request() 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request 
rv = self.handle_user_exception(e) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1517, in handle_user_exception 
reraise(exc_type, exc_value, tb) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request 
rv = self.dispatch_request() 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask\app.py", line 1598, in dispatch_request 
return self.view_functions[rule.endpoint](**req.view_args) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask_admin\base.py", line 69, in inner 
return self._run_view(f, *args, **kwargs) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask_admin\base.py", line 368, in _run_view 
return fn(self, *args, **kwargs) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask_admin\model\base.py", line 1920, in create_view 
model = self.create_model(form) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask_admin\contrib\sqla\view.py", line 1028, in create_model 
Open an interactive python shell in this frameif not self.handle_view_exception(ex): 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask_admin\contrib\sqla\view.py", line 1011, in handle_view_exception 
return super(ModelView, self).handle_view_exception(exc) 
File "C:\Users\AliKhan\flask_ecom\env\lib\site-packages\flask_admin\contrib\sqla\view.py", line 1022, in create_model 
model = self.model() 
+0

пожалуйста, напишите полный отслеживающий поэтому мы можем видеть контекст (какой линии он находится на и т.д. .) – yedpodtrzitko

+0

Я обновил полную трассировку по оригинальному вопросу. –

+0

Ваша функция __init __() в Packeges требует, чтобы вы передали хотя бы один аргумент (кроме self). ModelView (Packeges («abc»), db.session) должен заставить его работать – aldarel

ответ

2

Попробуйте, как показано ниже:

def __init__(self, **kwargs): 
     for key, value in kwargs.items(): 
      setattr(self, key, value) 
+0

Пожалуйста, объясните, что e фактическая ошибка и которая '__init__' изменится. Помогите другим пользователям найти этот вопрос и ответить, чтобы понять проблему, чтобы учиться и помогать себе. –

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