Skip to content

Commit da1253c

Browse files
authored
📝 Update docs (#1003)
1 parent b8d7f4f commit da1253c

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

docs/tutorial/automatic-id-none-refresh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ In the previous chapter, we saw how to add rows to the database using **SQLModel
44

55
Now let's talk a bit about why the `id` field **can't be `NULL`** on the database because it's a **primary key**, and we declare it using `Field(primary_key=True)`.
66

7-
But the same `id` field actually **can be `None`** in the Python code, so we declare the type with `Optional[int]`, and set the default value to `Field(default=None)`:
7+
But the same `id` field actually **can be `None`** in the Python code, so we declare the type with `int | None (or Optional[int])`, and set the default value to `Field(default=None)`:
88

99
//// tab | Python 3.10+
1010

docs/tutorial/create-db-and-table.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ Let's now see with more detail these field/column declarations.
145145

146146
### Optional Fields, Nullable Columns
147147

148-
Let's start with `age`, notice that it has a type of `Optional[int]`.
148+
Let's start with `age`, notice that it has a type of `int | None (or Optional[int])`.
149149

150150
And we import that `Optional` from the `typing` standard module.
151151

docs/tutorial/relationship-attributes/create-and-update-relationships.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Now let's do all that, but this time using the new, shiny `Relationship` attribu
134134

135135
Now we can create the `Team` instances and pass them directly to the new `team` argument when creating the `Hero` instances, as `team=team_preventers` instead of `team_id=team_preventers.id`.
136136

137-
And thanks to SQLAlchemy and how it works underneath, these teams don't even have to have an ID yet, but because we are assigning the whole object to each hero, those teams **will be automatically created** in the database, the automatic ID will be generated, and will be set in the `team_id` column for each of the corresponding hero rows.
137+
And thanks to SQLAlchemy and how it works underneath, these teams don't even need to have an ID yet, but because we are assigning the whole object to each hero, those teams **will be automatically created** in the database, the automatic ID will be generated, and will be set in the `team_id` column for each of the corresponding hero rows.
138138

139139
In fact, now we don't even have to put the teams explicitly in the session with `session.add(team)`, because these `Team` instances are **already associated** with heroes that **we do** `add` to the session.
140140

docs/tutorial/where.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1250,7 +1250,7 @@ It would be an error telling you that
12501250

12511251
> `Hero.age` is potentially `None`, and you cannot compare `None` with `>`
12521252
1253-
This is because as we are using pure and plain Python annotations for the fields, `age` is indeed annotated as `Optional[int]`, which means `int` or `None`.
1253+
This is because as we are using pure and plain Python annotations for the fields, `age` is indeed annotated as `int | None (or Optional[int])`.
12541254

12551255
By using this simple and standard Python type annotations we get the benefit of the extra simplicity and the inline error checks when creating or using instances. ✨
12561256

0 commit comments

Comments
 (0)