Skip to content

Commit 882140b

Browse files
committed
fix: django-simple-history 문제로 인해 unique 제한 조건을 변경
1 parent 07aa192 commit 882140b

File tree

5 files changed

+199
-3
lines changed

5 files changed

+199
-3
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Generated by Django 5.2 on 2025-06-08 14:07
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
dependencies = [
9+
("event", "0002_alter_event_options_alter_event_name_and_more"),
10+
("user", "0005_historicaluserext_nickname_and_more"),
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name="event",
17+
name="name",
18+
field=models.CharField(max_length=256),
19+
),
20+
migrations.AlterField(
21+
model_name="event",
22+
name="name_en",
23+
field=models.CharField(max_length=256, null=True),
24+
),
25+
migrations.AlterField(
26+
model_name="event",
27+
name="name_ko",
28+
field=models.CharField(max_length=256, null=True),
29+
),
30+
migrations.AlterField(
31+
model_name="historicalevent",
32+
name="name",
33+
field=models.CharField(max_length=256),
34+
),
35+
migrations.AlterField(
36+
model_name="historicalevent",
37+
name="name_en",
38+
field=models.CharField(max_length=256, null=True),
39+
),
40+
migrations.AlterField(
41+
model_name="historicalevent",
42+
name="name_ko",
43+
field=models.CharField(max_length=256, null=True),
44+
),
45+
migrations.AddConstraint(
46+
model_name="event",
47+
constraint=models.UniqueConstraint(
48+
condition=models.Q(("deleted_at__isnull", True)), fields=("name",), name="uq__evt__name"
49+
),
50+
),
51+
migrations.AddConstraint(
52+
model_name="event",
53+
constraint=models.UniqueConstraint(
54+
condition=models.Q(("deleted_at__isnull", True)), fields=("name_ko",), name="uq__evt__name-name_ko"
55+
),
56+
),
57+
migrations.AddConstraint(
58+
model_name="event",
59+
constraint=models.UniqueConstraint(
60+
condition=models.Q(("deleted_at__isnull", True)), fields=("name_en",), name="uq__evt__name-name_en"
61+
),
62+
),
63+
]

app/event/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
class Event(BaseAbstractModel):
88
organization = models.ForeignKey(Organization, on_delete=models.PROTECT, related_name="events")
9-
name = models.CharField(max_length=256, unique=True)
9+
name = models.CharField(max_length=256)
1010
banner_image = models.TextField(null=True, blank=True)
1111
slogan = models.CharField(max_length=1000, null=True, blank=True)
1212
description = models.CharField(max_length=1000, null=True, blank=True)
@@ -17,6 +17,9 @@ class Event(BaseAbstractModel):
1717

1818
class Meta:
1919
ordering = ["-event_start_at", "-event_end_at"]
20+
constraints = [
21+
models.UniqueConstraint(fields=["name"], name="uq__evt__name", condition=models.Q(deleted_at__isnull=True))
22+
]
2023

2124
def __str__(self):
2225
return f"{self.name} by {self.organization}"
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# Generated by Django 5.2 on 2025-06-08 14:07
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("auth", "0012_alter_user_first_name_max_length"),
9+
("user", "0005_historicaluserext_nickname_and_more"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="historicalorganization",
15+
name="name",
16+
field=models.CharField(max_length=256),
17+
),
18+
migrations.AlterField(
19+
model_name="historicalorganization",
20+
name="name_en",
21+
field=models.CharField(max_length=256, null=True),
22+
),
23+
migrations.AlterField(
24+
model_name="historicalorganization",
25+
name="name_ko",
26+
field=models.CharField(max_length=256, null=True),
27+
),
28+
migrations.AlterField(
29+
model_name="historicaluserext",
30+
name="nickname",
31+
field=models.CharField(blank=True, max_length=128, null=True),
32+
),
33+
migrations.AlterField(
34+
model_name="historicaluserext",
35+
name="nickname_en",
36+
field=models.CharField(blank=True, max_length=128, null=True),
37+
),
38+
migrations.AlterField(
39+
model_name="historicaluserext",
40+
name="nickname_ko",
41+
field=models.CharField(blank=True, max_length=128, null=True),
42+
),
43+
migrations.AlterField(
44+
model_name="organization",
45+
name="name",
46+
field=models.CharField(max_length=256),
47+
),
48+
migrations.AlterField(
49+
model_name="organization",
50+
name="name_en",
51+
field=models.CharField(max_length=256, null=True),
52+
),
53+
migrations.AlterField(
54+
model_name="organization",
55+
name="name_ko",
56+
field=models.CharField(max_length=256, null=True),
57+
),
58+
migrations.AlterField(
59+
model_name="userext",
60+
name="nickname",
61+
field=models.CharField(blank=True, max_length=128, null=True),
62+
),
63+
migrations.AlterField(
64+
model_name="userext",
65+
name="nickname_en",
66+
field=models.CharField(blank=True, max_length=128, null=True),
67+
),
68+
migrations.AlterField(
69+
model_name="userext",
70+
name="nickname_ko",
71+
field=models.CharField(blank=True, max_length=128, null=True),
72+
),
73+
migrations.AddConstraint(
74+
model_name="organization",
75+
constraint=models.UniqueConstraint(
76+
condition=models.Q(("deleted_at__isnull", True)), fields=("name",), name="uq__org__name"
77+
),
78+
),
79+
migrations.AddConstraint(
80+
model_name="organization",
81+
constraint=models.UniqueConstraint(
82+
condition=models.Q(("deleted_at__isnull", True)), fields=("name_ko",), name="uq__org__name-name_ko"
83+
),
84+
),
85+
migrations.AddConstraint(
86+
model_name="organization",
87+
constraint=models.UniqueConstraint(
88+
condition=models.Q(("deleted_at__isnull", True)), fields=("name_en",), name="uq__org__name-name_en"
89+
),
90+
),
91+
migrations.AddConstraint(
92+
model_name="userext",
93+
constraint=models.UniqueConstraint(
94+
condition=models.Q(("is_active", True), ("nickname__isnull", False)),
95+
fields=("nickname",),
96+
name="uq__userext__nickname",
97+
),
98+
),
99+
migrations.AddConstraint(
100+
model_name="userext",
101+
constraint=models.UniqueConstraint(
102+
condition=models.Q(("is_active", True), ("nickname__isnull", False)),
103+
fields=("nickname_ko",),
104+
name="uq__userext__nickname-nickname_ko",
105+
),
106+
),
107+
migrations.AddConstraint(
108+
model_name="userext",
109+
constraint=models.UniqueConstraint(
110+
condition=models.Q(("is_active", True), ("nickname__isnull", False)),
111+
fields=("nickname_en",),
112+
name="uq__userext__nickname-nickname_en",
113+
),
114+
),
115+
]

app/user/models/organization.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,12 @@
55

66

77
class Organization(BaseAbstractModel):
8-
name = models.CharField(max_length=256, unique=True)
8+
name = models.CharField(max_length=256)
9+
10+
class Meta:
11+
constraints = [
12+
models.UniqueConstraint(fields=["name"], name="uq__org__name", condition=models.Q(deleted_at__isnull=True))
13+
]
914

1015
def __str__(self):
1116
return self.name

app/user/models/user.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,20 @@
33

44

55
class UserExt(AbstractUser):
6-
nickname = models.CharField(max_length=128, unique=True, null=True, blank=True)
6+
nickname = models.CharField(max_length=128, null=True, blank=True)
77

88
class Meta:
99
ordering = ["-date_joined"]
10+
constraints = [
11+
models.UniqueConstraint(
12+
fields=["nickname"],
13+
name="uq__userext__nickname",
14+
condition=models.Q(
15+
nickname__isnull=False,
16+
is_active=True,
17+
),
18+
),
19+
]
1020

1121
def __str__(self):
1222
return f"{self.nickname} <{self.email}>"

0 commit comments

Comments
 (0)