Skip to content

Commit 8ee8cc7

Browse files
committed
add patron sponsor/patron model
1 parent 39699a9 commit 8ee8cc7

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

sponsor/migrations/0005_patron.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Generated by Django 4.1.5 on 2023-07-26 15:59
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+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
11+
("sponsor", "0004_alter_sponsor_options_alter_sponsorlevel_options"),
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name="Patron",
17+
fields=[
18+
(
19+
"id",
20+
models.BigAutoField(
21+
auto_created=True,
22+
primary_key=True,
23+
serialize=False,
24+
verbose_name="ID",
25+
),
26+
),
27+
("name", models.CharField(max_length=100)),
28+
(
29+
"total_contribution",
30+
models.IntegerField(default=0, help_text="개인후원한 금액입니다."),
31+
),
32+
(
33+
"contribution_datetime",
34+
models.DateTimeField(help_text="개인후원 결제한 일시입니다."),
35+
),
36+
(
37+
"contribution_message",
38+
models.TextField(
39+
help_text="후원메시지입니다. emoji 를 입력가능해야하고 html 태그가 들어갈 수 있습니다."
40+
),
41+
),
42+
("created_at", models.DateTimeField(auto_now_add=True)),
43+
("updated_at", models.DateTimeField(auto_now=True)),
44+
(
45+
"creator",
46+
models.ForeignKey(
47+
blank=True,
48+
help_text="개인후원을 등록한 유저",
49+
null=True,
50+
on_delete=django.db.models.deletion.CASCADE,
51+
related_name="patron_user",
52+
to=settings.AUTH_USER_MODEL,
53+
),
54+
),
55+
],
56+
options={
57+
"verbose_name": "개인후원자",
58+
"verbose_name_plural": "개인후원자 목록",
59+
"ordering": ["-total_contribution", "contribution_datetime"],
60+
},
61+
),
62+
]

sponsor/models.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,36 @@ class Meta:
158158

159159
def __str__(self):
160160
return f"{self.name}/{self.level}"
161+
162+
163+
164+
class Patron(models.Model):
165+
class Meta:
166+
ordering = ["-total_contribution", "contribution_datetime"]
167+
verbose_name = "개인후원자"
168+
verbose_name_plural = "개인후원자 목록"
169+
170+
name = models.CharField(max_length=100)
171+
creator = models.ForeignKey(
172+
User,
173+
null=True, # TODO: 추후 로그인 적용 후 입력
174+
blank=True, # TODO: 추후 로그인 적용 후 입력
175+
on_delete=models.CASCADE,
176+
help_text="개인후원을 등록한 유저",
177+
related_name="patron_user",
178+
)
179+
total_contribution = models.IntegerField(default=0, help_text="개인후원한 금액입니다.")
180+
contribution_datetime = models.DateTimeField(
181+
help_text="개인후원 결제한 일시입니다."
182+
)
183+
contribution_message = models.TextField(
184+
help_text="후원메시지입니다. emoji 를 입력가능해야하고 html 태그가 들어갈 수 있습니다."
185+
)
186+
# need html sanitizing before saving
187+
# but need to include emoji
188+
189+
created_at = models.DateTimeField(auto_now_add=True)
190+
updated_at = models.DateTimeField(auto_now=True)
191+
192+
def __str__(self):
193+
return f"{self.name}"

0 commit comments

Comments
 (0)