2017-02-02 2 views
0

이 상황에서는 default = 'value'를 제공해야한다는 것을 알고 있습니다. StackOverFlow를 통한 솔루션과 의논했지만이 오류를 없앨 수는 없습니다. 기본값이 있거나 없으면 관리자 양식에서 저장하는 동안이 오류가 발생합니다. 초기화 기능에서 Packeges 모듈에 오류가 있습니다. 제발 조언.TypeError : __init __()는 정확히 2 개의 인수 (주어진 경우 1 개)를가집니다. Flask

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)) 

역 추적 : 다음 내 코드입니다

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

Packeges에서 __init __() 함수를 사용하려면 적어도 하나 이상의 인수를 전달해야합니다. ModelView (Packet ("abc"), db.session)가 작동해야 함 – aldarel

답변

2

다음과 같이하십시오 : 우리는 상황을 볼 수 있도록

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

설명해주십시오. 실제 오류는 무엇이며'__init__'는 변경해야합니다. 이 질문과 답변을 찾는 다른 사용자가 문제를 이해하고 스스로 배우고 도움을 줄 수 있도록하십시오. –