簡體   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