Skip to content

Commit 9d9d9a7

Browse files
committed
chore: drop related name on base model created_by_user
This caused, for example, on the `User` model to set an `acl` attribute, pointing to the creator. This is very confusing, for example if searching for all users within a scope: >>> User.objects.filter(acl__scope__in=scope_list) This would return the user who has *created* all those ACLs, instead of the users who are in fact *granted* the ACL. The correct way would have been >>> User.objects.filter(acls__scope__in=scope_list) So to avoid this confusion (and others), we'll remove the related name.
1 parent 7825ca6 commit 9d9d9a7

File tree

2 files changed

+67
-1
lines changed

2 files changed

+67
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Generated by Django 3.2.25 on 2024-12-24 10:28
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
dependencies = [
10+
("emeis_core", "0012_parents_as_arrayfield"),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name="acl",
16+
name="created_by_user",
17+
field=models.ForeignKey(
18+
null=True,
19+
on_delete=django.db.models.deletion.SET_NULL,
20+
related_name="+",
21+
to=settings.AUTH_USER_MODEL,
22+
),
23+
),
24+
migrations.AlterField(
25+
model_name="permission",
26+
name="created_by_user",
27+
field=models.ForeignKey(
28+
null=True,
29+
on_delete=django.db.models.deletion.SET_NULL,
30+
related_name="+",
31+
to=settings.AUTH_USER_MODEL,
32+
),
33+
),
34+
migrations.AlterField(
35+
model_name="role",
36+
name="created_by_user",
37+
field=models.ForeignKey(
38+
null=True,
39+
on_delete=django.db.models.deletion.SET_NULL,
40+
related_name="+",
41+
to=settings.AUTH_USER_MODEL,
42+
),
43+
),
44+
migrations.AlterField(
45+
model_name="scope",
46+
name="created_by_user",
47+
field=models.ForeignKey(
48+
null=True,
49+
on_delete=django.db.models.deletion.SET_NULL,
50+
related_name="+",
51+
to=settings.AUTH_USER_MODEL,
52+
),
53+
),
54+
migrations.AlterField(
55+
model_name="user",
56+
name="created_by_user",
57+
field=models.ForeignKey(
58+
null=True,
59+
on_delete=django.db.models.deletion.SET_NULL,
60+
related_name="+",
61+
to=settings.AUTH_USER_MODEL,
62+
),
63+
),
64+
]

emeis/core/models.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ def get_language_code():
3636
class BaseModel(models.Model):
3737
created_at = models.DateTimeField(auto_now_add=True, db_index=True)
3838
modified_at = models.DateTimeField(auto_now=True, db_index=True)
39-
created_by_user = models.ForeignKey("User", null=True, on_delete=models.SET_NULL)
39+
created_by_user = models.ForeignKey(
40+
"User", null=True, on_delete=models.SET_NULL, related_name="+"
41+
)
4042
metainfo = models.JSONField(_("metainfo"), default=dict)
4143

4244
class Meta:

0 commit comments

Comments
 (0)