2
2
from typing import Optional , List
3
3
import reflex as rx
4
4
5
+ import sqlalchemy
5
6
from sqlmodel import select
6
7
7
8
from .. import navigation
8
9
from ..auth .state import SessionState
9
- from ..models import BlogPostModel
10
+ from ..models import BlogPostModel , UserInfo
10
11
11
12
BLOG_POSTS_ROUTE = navigation .routes .BLOG_POSTS_ROUTE
12
13
if BLOG_POSTS_ROUTE .endswith ("/" ):
@@ -39,14 +40,15 @@ def get_post_detail(self):
39
40
if self .blog_post_id == "" :
40
41
self .post = None
41
42
return
42
- result = session .exec (
43
- select (BlogPostModel ).where (
44
- (BlogPostModel .id == self .blog_post_id )
45
- )
46
- ).one_or_none ()
47
- if result .userinfo : # db lookup
48
- print ('working' )
49
- # result.userinfo.user
43
+ sql_statement = select (BlogPostModel ).options (
44
+ sqlalchemy .orm .joinedload (BlogPostModel .userinfo ).joinedload (UserInfo .user )
45
+ ).where (
46
+ (BlogPostModel .id == self .blog_post_id )
47
+ )
48
+ result = session .exec (sql_statement ).one_or_none ()
49
+ # if result.userinfo: # db lookup
50
+ # print('working')
51
+ # result.userinfo.user # db lookup
50
52
self .post = result
51
53
if result is None :
52
54
self .post_content = ""
@@ -65,7 +67,9 @@ def load_posts(self, published_only=False):
65
67
)
66
68
with rx .session () as session :
67
69
result = session .exec (
68
- select (BlogPostModel ).where (
70
+ select (BlogPostModel ).options (
71
+ sqlalchemy .orm .joinedload (BlogPostModel .userinfo )
72
+ ).where (
69
73
* lookup_args
70
74
)
71
75
).all ()
0 commit comments