peewee的related_name是做什么用的

发布于 2022-09-01 17:29:32 字数 1436 浏览 30 评论 0

from peewee import *
from  pprint import pprint
import datetime
import random
import sys
db = SqliteDatabase('people.db')

class User(Model):
    uid = IntegerField(primary_key=True)
    name = CharField()

    class Meta:
        database = db # This model uses the "people.db" database.
class Tweet(Model):
    user = ForeignKeyField(User, related_name='tweets')
    message = TextField()
    created_date = DateTimeField(default=datetime.datetime.now)
    is_published = BooleanField(default=True)
#db.create_tables([User,Tweet])
username=str(random.random())+"oo"
msg=str(random.random())+"xx"
try:
    user = User.get(name=username)
    print(user.uid)
except:
   user=User.create(name=username)
   print(user.uid)
   
try:
    tt = Tweet.get(user=4)
    print(tt.user)
except:
   user=Tweet.create(user=4,message=msg)
   print(user.message)
   
total=User.select().count()
print(total)
t=Tweet.select().join(User).where(User.uid ==8).order_by(Tweet.created_date.desc()).get()
print(t)

http://peewee.readthedocs.org/en/latest/peewee/querying.html
照着官方的文档写的,但是报错
peewee.OperationalError: no such table: user
user表肯定有,因为create,get都能正确执行
就是到join关联表的时候出错
写成

t=Tweet.select().join(tweets).where(User.uid ==8).order_by(Tweet.created_date.desc()).get()

也一样

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情绪失控 2022-09-08 17:29:32

就是反向引用名称。你可以用user.tweets访问一个用户的tweet列表

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文