次のクラスがあります。(ピーウィーとファルコンを使っています)
models/Auth.py
:
from peewee import UUIDField, TextField
from models import BaseModel
class Auth(BaseModel):
app_name = TextField()
access_token = UUIDField()
models/Tweet.py
:
from peewee import TextField
from models import BaseModel
class Tweet(BaseModel):
username = TextField()
message = TextField()
models/__init__.py
:
from config import Database
from models.Auth import Auth
from models.BaseModel import BaseModel
from models.Tweet import Tweet
Database.connect()
Database.create_tables([Auth, Tweet], True)
"""
from config import Database
from models.BaseModel import BaseModel
from models.Tweet import Tweet
Database.connect()
Database.create_tables([Tweet], True)
"""
models/BaseModel.py
:
from datetime import datetime
from peewee import DateTimeField
from playhouse.signals import pre_save, Model
from config import Database
class BaseModel(Model):
created_at = DateTimeField(default=datetime.now)
updated_at = DateTimeField()
class Meta:
database = Database
@pre_save(sender=BaseModel)
def pre_save(sender, instance, created):
if created:
instance.updated_at = datetime.now()
コメントしたコード部分は__init__.py
実行時にエラーなしで実行されますgunicorn --reload hyperion
が、コメントを外した部分は次のエラーを引き起こします。
File "/Users/savaskoc/IdeaProjects/Hyperion/models/__init__.py", line 2, in <module>
from models.Auth import Auth
File "/Users/savaskoc/IdeaProjects/Hyperion/models/Auth.py", line 6, in <module>
class Auth(BaseModel):
TypeError: module.__init__() takes at most 2 arguments (3 given)
エラーの場所がわかりませんでした。クラスは同じように見えますAuth
...Tweet