Skip to content

Commit 8010204

Browse files
committed
Rename ForeignKey to ForeignKeyField
1 parent 4536097 commit 8010204

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+149
-142
lines changed

plain-api/plain/api/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ from plain.api.models import APIKey
214214
@models.register_model
215215
class User(models.Model):
216216
# other fields...
217-
api_key = models.ForeignKey(
217+
api_key = models.ForeignKeyField(
218218
APIKey,
219219
on_delete=models.CASCADE,
220220
allow_null=True,

plain-flags/plain/flags/migrations/0001_initial.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class Migration(migrations.Migration):
5959
migrations.AddField(
6060
model_name="flagresult",
6161
name="flag",
62-
field=models.ForeignKey(
62+
field=models.ForeignKeyField(
6363
on_delete=plain.models.deletion.CASCADE, to="plainflags.flag"
6464
),
6565
),

plain-flags/plain/flags/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def validate_flag_name(value: str) -> None:
1717
class FlagResult(models.Model):
1818
created_at: datetime = types.DateTimeField(auto_now_add=True)
1919
updated_at: datetime = types.DateTimeField(auto_now=True)
20-
flag: Flag = types.ForeignKey("Flag", on_delete=models.CASCADE)
20+
flag: Flag = types.ForeignKeyField("Flag", on_delete=models.CASCADE)
2121
key: str = types.CharField(max_length=255)
2222
value = types.JSONField()
2323

plain-models/plain/models/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ class Product(models.Model):
159159
updated_at = models.DateTimeField(auto_now=True)
160160

161161
# Relationships
162-
category = models.ForeignKey("Category", on_delete=models.CASCADE)
162+
category = models.ForeignKeyField("Category", on_delete=models.CASCADE)
163163
tags = models.ManyToManyField("Tag")
164164
```
165165

@@ -191,7 +191,7 @@ class Author(models.Model):
191191
@models.register_model
192192
class Book(models.Model):
193193
title = models.CharField(max_length=200)
194-
author = models.ForeignKey(Author, on_delete=models.CASCADE)
194+
author = models.ForeignKeyField(Author, on_delete=models.CASCADE)
195195

196196
# Usage
197197
author = Author.query.get(name="Jane Doe")
@@ -255,7 +255,7 @@ published_at: datetime | None = types.DateTimeField(allow_null=True, required=Fa
255255
Foreign keys are typed with the related model:
256256

257257
```python
258-
author: Author = types.ForeignKey(Author, on_delete=models.CASCADE)
258+
author: Author = types.ForeignKeyField(Author, on_delete=models.CASCADE)
259259
```
260260

261261
All field types from the [Fields](#fields) section are available through [`types`](./types.py). Typed and untyped fields can be mixed in the same model. The database behavior is identical - typed fields only add type checking.

plain-models/plain/models/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
)
3535
from .fields.json import JSONField
3636
from .fields.related import (
37-
ForeignKey,
37+
ForeignKeyField,
3838
ManyToManyField,
3939
)
4040
from .fields.reverse_descriptors import (
@@ -101,7 +101,7 @@
101101
# From base
102102
"Model",
103103
# From fields.related
104-
"ForeignKey",
104+
"ForeignKeyField",
105105
"ManyToManyField",
106106
# From fields.reverse_descriptors
107107
"ReverseForeignKey",

plain-models/plain/models/backends/base/features.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class BaseDatabaseFeatures:
6767
# Can an object have an autoincrement primary key of 0?
6868
allows_auto_pk_0 = True
6969

70-
# Do we need to NULL a ForeignKey out, or can the constraint check be
70+
# Do we need to NULL a ForeignKeyField out, or can the constraint check be
7171
# deferred
7272
can_defer_constraint_checks = False
7373

plain-models/plain/models/backends/base/schema.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from plain.models.backends.utils import names_digest, split_identifier, truncate_name
2222
from plain.models.constraints import Deferrable
2323
from plain.models.fields import Field
24-
from plain.models.fields.related import ForeignKey, RelatedField
24+
from plain.models.fields.related import ForeignKeyField, RelatedField
2525
from plain.models.fields.reverse_related import ManyToManyRel
2626
from plain.models.indexes import Index
2727
from plain.models.sql import Query
@@ -35,7 +35,7 @@
3535
from plain.models.base import Model
3636
from plain.models.constraints import BaseConstraint
3737
from plain.models.fields import Field
38-
from plain.models.fields.related import ForeignKey, ManyToManyField
38+
from plain.models.fields.related import ForeignKeyField, ManyToManyField
3939
from plain.models.fields.reverse_related import ManyToManyRel
4040

4141
logger = logging.getLogger("plain.models.backends.schema")
@@ -55,7 +55,7 @@ def _is_relevant_relation(relation: Any, altered_field: Field) -> bool:
5555
if altered_field.primary_key:
5656
# Foreign key constraint on the primary key, which is being altered.
5757
return True
58-
# ForeignKey always targets 'id'
58+
# ForeignKeyField always targets 'id'
5959
return altered_field.name == "id"
6060

6161

@@ -244,7 +244,7 @@ def table_sql(self, model: type[Model]) -> tuple[str, list[Any]]:
244244
if extra_params:
245245
params.extend(extra_params)
246246
# FK.
247-
if isinstance(field, ForeignKey) and field.db_constraint:
247+
if isinstance(field, ForeignKeyField) and field.db_constraint:
248248
to_table = field.remote_field.model.model_options.db_table
249249
field_name = field.remote_field.field_name
250250
if field_name is None:
@@ -586,7 +586,7 @@ def add_field(self, model: type[Model], field: Field) -> None:
586586
if db_params["check"]:
587587
definition += " " + self.sql_check_constraint % db_params
588588
if (
589-
isinstance(field, ForeignKey)
589+
isinstance(field, ForeignKeyField)
590590
and self.connection.features.supports_foreign_keys
591591
and field.db_constraint
592592
):
@@ -768,7 +768,7 @@ def _alter_field(
768768
fks_dropped = set()
769769
if (
770770
self.connection.features.supports_foreign_keys
771-
and isinstance(old_field, ForeignKey)
771+
and isinstance(old_field, ForeignKeyField)
772772
and old_field.db_constraint
773773
and self._field_should_be_altered(
774774
old_field,
@@ -839,11 +839,11 @@ def _alter_field(
839839
# True | False | False | True
840840
# True | False | True | True
841841
if (
842-
isinstance(old_field, ForeignKey)
842+
isinstance(old_field, ForeignKeyField)
843843
and old_field.db_index
844844
and not old_field.primary_key
845845
and (
846-
not (isinstance(new_field, ForeignKey) and new_field.db_index)
846+
not (isinstance(new_field, ForeignKeyField) and new_field.db_index)
847847
or new_field.primary_key
848848
)
849849
):
@@ -1007,10 +1007,10 @@ def _alter_field(
10071007
# True | True | True | False
10081008
if (
10091009
(
1010-
not (isinstance(old_field, ForeignKey) and old_field.db_index)
1010+
not (isinstance(old_field, ForeignKeyField) and old_field.db_index)
10111011
or old_field.primary_key
10121012
)
1013-
and isinstance(new_field, ForeignKey)
1013+
and isinstance(new_field, ForeignKeyField)
10141014
and new_field.db_index
10151015
and not new_field.primary_key
10161016
):
@@ -1056,10 +1056,10 @@ def _alter_field(
10561056
# Does it have a foreign key?
10571057
if (
10581058
self.connection.features.supports_foreign_keys
1059-
and isinstance(new_field, ForeignKey)
1059+
and isinstance(new_field, ForeignKeyField)
10601060
and (
10611061
fks_dropped
1062-
or not isinstance(old_field, ForeignKey)
1062+
or not isinstance(old_field, ForeignKeyField)
10631063
or not old_field.db_constraint
10641064
)
10651065
and new_field.db_constraint
@@ -1070,7 +1070,7 @@ def _alter_field(
10701070
# Rebuild FKs that pointed to us if we previously had to drop them
10711071
if drop_foreign_keys:
10721072
for _, rel in rels_to_update:
1073-
if isinstance(rel.field, ForeignKey) and rel.field.db_constraint:
1073+
if isinstance(rel.field, ForeignKeyField) and rel.field.db_constraint:
10741074
self.execute(
10751075
self._create_fk_sql(rel.related_model, rel.field, "_fk")
10761076
)
@@ -1462,7 +1462,7 @@ def _field_should_be_altered(
14621462
) or (old_path, old_args, old_kwargs) != (new_path, new_args, new_kwargs)
14631463

14641464
def _field_should_be_indexed(self, model: type[Model], field: Field) -> bool:
1465-
if isinstance(field, ForeignKey):
1465+
if isinstance(field, ForeignKeyField):
14661466
return bool(field.remote_field) and field.db_index and not field.primary_key
14671467
return False
14681468

@@ -1480,7 +1480,7 @@ def _rename_field_sql(
14801480
}
14811481

14821482
def _create_fk_sql(
1483-
self, model: type[Model], field: ForeignKey, suffix: str
1483+
self, model: type[Model], field: ForeignKeyField, suffix: str
14841484
) -> Statement:
14851485
table = Table(model.model_options.db_table, self.quote_name)
14861486
name = self._fk_constraint_name(model, field, suffix)
@@ -1505,7 +1505,7 @@ def _create_fk_sql(
15051505
)
15061506

15071507
def _fk_constraint_name(
1508-
self, model: type[Model], field: ForeignKey, suffix: str
1508+
self, model: type[Model], field: ForeignKeyField, suffix: str
15091509
) -> ForeignKeyName:
15101510
def create_fk_name(*args: Any, **kwargs: Any) -> str:
15111511
return self.quote_name(self._create_index_name(*args, **kwargs))

plain-models/plain/models/backends/mysql/schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from plain.models.constraints import UniqueConstraint
88
from plain.models.expressions import F
99
from plain.models.fields import NOT_PROVIDED
10-
from plain.models.fields.related import ForeignKey
10+
from plain.models.fields.related import ForeignKeyField
1111

1212
if TYPE_CHECKING:
1313
from collections.abc import Sequence
@@ -161,12 +161,12 @@ def _field_should_be_indexed(self, model: type[Model], field: Field) -> bool:
161161
storage = self.connection.introspection.get_storage_engine(
162162
self.connection.cursor(), model.model_options.db_table
163163
)
164-
# No need to create an index for ForeignKey fields except if
164+
# No need to create an index for ForeignKeyField fields except if
165165
# db_constraint=False because the index from that constraint won't be
166166
# created.
167167
if (
168168
storage == "InnoDB"
169-
and isinstance(field, ForeignKey)
169+
and isinstance(field, ForeignKeyField)
170170
and field.db_constraint
171171
):
172172
return False
@@ -203,7 +203,7 @@ def _create_missing_fk_index(
203203
return
204204

205205
first_field = model._model_meta.get_forward_field(first_field_name)
206-
if first_field.get_internal_type() == "ForeignKey":
206+
if first_field.get_internal_type() == "ForeignKeyField":
207207
column = self.connection.introspection.identifier_converter(
208208
first_field.column
209209
)

plain-models/plain/models/backends/postgresql/schema.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from plain.models.backends.base.schema import BaseDatabaseSchemaEditor
99
from plain.models.backends.ddl_references import Columns, IndexColumns, Statement
1010
from plain.models.backends.utils import strip_quotes
11-
from plain.models.fields.related import ForeignKey, RelatedField
11+
from plain.models.fields.related import ForeignKeyField, RelatedField
1212

1313
if TYPE_CHECKING:
1414
from plain.models.backends.postgresql.base import PostgreSQLDatabaseWrapper
@@ -282,10 +282,10 @@ def _alter_field(
282282
# Added an index? Create any PostgreSQL-specific indexes.
283283
if (
284284
not (
285-
(isinstance(old_field, ForeignKey) and old_field.db_index)
285+
(isinstance(old_field, ForeignKeyField) and old_field.db_index)
286286
or old_field.primary_key
287287
)
288-
and isinstance(new_field, ForeignKey)
288+
and isinstance(new_field, ForeignKeyField)
289289
and new_field.db_index
290290
) or (not old_field.primary_key and new_field.primary_key):
291291
like_index_statement = self._create_like_index_sql(model, new_field)
@@ -294,7 +294,7 @@ def _alter_field(
294294

295295
# Removed an index? Drop any PostgreSQL-specific indexes.
296296
if old_field.primary_key and not (
297-
(isinstance(new_field, ForeignKey) and new_field.db_index)
297+
(isinstance(new_field, ForeignKeyField) and new_field.db_index)
298298
or new_field.primary_key
299299
):
300300
index_to_remove = self._create_index_name(

plain-models/plain/models/backends/sqlite3/schema.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from plain.models.backends.utils import strip_quotes
1111
from plain.models.constraints import UniqueConstraint
1212
from plain.models.db import NotSupportedError
13-
from plain.models.fields.related import ForeignKey, RelatedField
13+
from plain.models.fields.related import ForeignKeyField, RelatedField
1414
from plain.models.registry import ModelsRegistry
1515
from plain.models.transaction import atomic
1616

@@ -410,8 +410,8 @@ def remove_field(self, model: type[Model], field: Field) -> None:
410410
# Primary keys, unique fields, indexed fields, and foreign keys are
411411
# not supported in ALTER TABLE DROP COLUMN.
412412
and not field.primary_key
413-
and not (isinstance(field, ForeignKey) and field.db_index)
414-
and not (isinstance(field, ForeignKey) and field.db_constraint)
413+
and not (isinstance(field, ForeignKeyField) and field.db_index)
414+
and not (isinstance(field, ForeignKeyField) and field.db_constraint)
415415
):
416416
super().remove_field(model, field)
417417
# For everything else, remake.
@@ -440,9 +440,9 @@ def _alter_field(
440440
and old_field.column != new_field.column
441441
and self.column_sql(model, old_field) == self.column_sql(model, new_field)
442442
and not (
443-
isinstance(old_field, ForeignKey)
443+
isinstance(old_field, ForeignKeyField)
444444
and old_field.db_constraint
445-
or isinstance(new_field, ForeignKey)
445+
or isinstance(new_field, ForeignKeyField)
446446
and new_field.db_constraint
447447
)
448448
):

0 commit comments

Comments
 (0)