greyli / bluelog

Check out the newer version (2024) of this project: https://github.com/greyli/greybook
MIT License
454 stars 662 forks source link

关于fakes.py中fake_comments的疑问 #30

Closed kaileiwu closed 1 year ago

kaileiwu commented 4 years ago

在生成50条回复时用到 replied=Comment.query.get(random.randint(1, Comment.query.count())), post=Post.query.get(random.randint(1, Post.query.count())) 这样会不会导致生成的replied并不是生成的post的的comment呢?

yingang commented 3 years ago

是的,我也发现这个问题了,我的处理方法是:

for i in range(salt):
   post = Post.query.get(random.randint(1, Post.query.count()))
   replied = random.choice(list(Comment.query.with_parent(post)))

   comment = Comment(
       author=fake.name(),
       email=fake.email(),
       site=fake.url(),
       body=fake.sentence(),
       timestamp=fake.date_time_this_year(),
       reviewed=True,
       replied=replied,
       post=post
   )
   db.session.add(comment)
db.session.commit()

不过如果再细抠的话,fake的时间戳也是有问题的,有可能导致reply的comment比被reply的时间comment还早, 以及comment比post也早。。。:)

Update: 刚才发现这个问题在 #1 中就已经提到了:)

greyli commented 1 year ago

感谢反馈,已在 https://github.com/greyli/new-bluelog/pull/14 处理。