Skip to content

Commit 3627166

Browse files
51 - Saving UserInfo ID to Related Models
1 parent b33e7b7 commit 3627166

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

full_stack_python/auth/state.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99

1010

1111
class SessionState(reflex_local_auth.LocalAuthState):
12+
@rx.cached_var
13+
def my_userinfo_id(self) -> str | None:
14+
if self.authenticated_user_info is None:
15+
return None
16+
return self.authenticated_user_info.id
1217

1318
@rx.cached_var
1419
def my_user_id(self) -> str | None:
@@ -35,7 +40,7 @@ def authenticated_user_info(self) -> UserInfo | None:
3540
if result is None:
3641
return None
3742
# database lookup
38-
result.user
43+
# result.user
3944
# user_obj = result.user
4045
# print(result.user)
4146
return result

full_stack_python/blog/detail.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ def blog_post_detail_page() -> rx.Component:
1919
edit_link_el,
2020
align='end'
2121
),
22+
rx.text("User info id ", state.BlogPostState.post.userinfo_id),
23+
rx.text("User info: ", state.BlogPostState.post.userinfo.to_string()),
24+
rx.text("User: ", state.BlogPostState.post.userinfo.user.to_string()),
2225
rx.text(state.BlogPostState.post.publish_date),
2326
rx.text(
2427
state.BlogPostState.post.content,

full_stack_python/blog/state.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
from sqlmodel import select
66

77
from .. import navigation
8+
from ..auth.state import SessionState
89
from ..models import BlogPostModel
910

1011
BLOG_POSTS_ROUTE = navigation.routes.BLOG_POSTS_ROUTE
1112
if BLOG_POSTS_ROUTE.endswith("/"):
1213
BLOG_POSTS_ROUTE = BLOG_POSTS_ROUTE[:-1]
1314

14-
class BlogPostState(rx.State):
15+
class BlogPostState(SessionState):
1516
posts: List['BlogPostModel'] = []
1617
post: Optional['BlogPostModel'] = None
1718
post_content: str = ""
@@ -43,6 +44,9 @@ def get_post_detail(self):
4344
(BlogPostModel.id == self.blog_post_id)
4445
)
4546
).one_or_none()
47+
if result.userinfo: # db lookup
48+
print('working')
49+
# result.userinfo.user
4650
self.post = result
4751
if result is None:
4852
self.post_content = ""
@@ -106,8 +110,11 @@ class BlogAddPostFormState(BlogPostState):
106110
form_data: dict = {}
107111

108112
def handle_submit(self, form_data):
109-
self.form_data = form_data
110-
self.add_post(form_data)
113+
data = form_data.copy()
114+
if self.my_userinfo_id is not None:
115+
data['userinfo_id'] = self.my_userinfo_id
116+
self.form_data = data
117+
self.add_post(data)
111118
return self.to_blog_post(edit_page=True)
112119

113120

full_stack_python/contact/state.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ async def handle_submit(self, form_data: dict):
2929
data[k] = v
3030
if self.my_user_id is not None:
3131
data['user_id'] = self.my_user_id
32-
print("contact data", data)
32+
if self.my_userinfo_id is not None:
33+
data['userinfo_id'] = self.my_userinfo_id
3334
with rx.session() as session:
3435
db_entry = ContactEntryModel(
3536
**data

0 commit comments

Comments
 (0)