python - peewee的related_name是做什么用的
黄舟
黄舟 2017-04-17 15:51:47
[Python讨论组]
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()

也一样

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
怪我咯

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号