繁体   English   中英

使用Peewee的关系映射

[英]Relational Mapping using Peewee

我是关系数据库的新手,我对应该如何创建模型感到很困惑。 我需要完成的工作是通过语言选择来过滤帖子内容,并为此创建一个关系数据库。 当决定我必须完成多少个模型(表)时,我的疑问就来了。 这是一个例子:

models.py

class Post(Model):
    timestamp = DateTimeField(default=datetime.datetime.now)
    user = ForeignKeyField(
        rel_model=User,
        related_name='posts'
    )
    language = TextField()
    content = ForeignKeyField(THIS NEEDS TO POINT TO THE LANGUAGE)

    class Meta:
        database = DATABASE

是否可以完成这样的事情? 我应该创建多个邮政模型吗?

在此先感谢您。

您是否已阅读快速入门指南? 这样做可能会让您感觉如何创建模型和建立关系:

http://docs.peewee-orm.com/zh-CN/latest/peewee/quickstart.html

要回答您的直接问题,您可以创建另一个语言表,即

class Language(Model):
    name = CharField()

    class Meta:
        database = DATABASE

因此,您将在一起(清理了一下):

DATABASE = SqliteDatabase('mydb.db') # or PostgresqlDatabase or MySQLDatabase

class BaseModel(Model):
    class Meta:
        database = DATABASE

class User(BaseModel):
    email = CharField()
    # whatever other user fields

class Language(BaseModel):
    name = CharField()
    # other fields?

class Post(BaseModel):
    timestamp = DateTimeField(default=datetime.datetime.now)
    user = ForeignKeyField(User, related_name='posts')
    language = TextField()
    content = ForeignKeyField(Language, related_name='posts')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM