0001_initial.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. # Generated by Django 5.2.1 on 2025-06-05 21:16
  2. import django.db.models.deletion
  3. from django.conf import settings
  4. from django.db import migrations, models
  5. class Migration(migrations.Migration):
  6. initial = True
  7. dependencies = [
  8. ("accounts", "0002_interesttag_customuser_interests"),
  9. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  10. ]
  11. operations = [
  12. migrations.CreateModel(
  13. name="Group",
  14. fields=[
  15. (
  16. "id",
  17. models.BigAutoField(
  18. auto_created=True,
  19. primary_key=True,
  20. serialize=False,
  21. verbose_name="ID",
  22. ),
  23. ),
  24. (
  25. "name",
  26. models.CharField(
  27. max_length=100, unique=True, verbose_name="小组名称"
  28. ),
  29. ),
  30. ("description", models.TextField(blank=True, verbose_name="小组描述")),
  31. (
  32. "cover_image",
  33. models.ImageField(
  34. blank=True,
  35. null=True,
  36. upload_to="group_covers/",
  37. verbose_name="小组封面",
  38. ),
  39. ),
  40. (
  41. "created_at",
  42. models.DateTimeField(auto_now_add=True, verbose_name="创建时间"),
  43. ),
  44. (
  45. "updated_at",
  46. models.DateTimeField(auto_now=True, verbose_name="更新时间"),
  47. ),
  48. (
  49. "creator",
  50. models.ForeignKey(
  51. null=True,
  52. on_delete=django.db.models.deletion.SET_NULL,
  53. related_name="created_groups",
  54. to=settings.AUTH_USER_MODEL,
  55. verbose_name="创建者",
  56. ),
  57. ),
  58. (
  59. "tags",
  60. models.ManyToManyField(
  61. blank=True,
  62. related_name="groups_with_tag",
  63. to="accounts.interesttag",
  64. verbose_name="相关兴趣标签",
  65. ),
  66. ),
  67. ],
  68. options={
  69. "verbose_name": "小组",
  70. "verbose_name_plural": "小组们",
  71. "ordering": ["-created_at"],
  72. },
  73. ),
  74. migrations.CreateModel(
  75. name="Membership",
  76. fields=[
  77. (
  78. "id",
  79. models.BigAutoField(
  80. auto_created=True,
  81. primary_key=True,
  82. serialize=False,
  83. verbose_name="ID",
  84. ),
  85. ),
  86. (
  87. "date_joined",
  88. models.DateTimeField(auto_now_add=True, verbose_name="加入日期"),
  89. ),
  90. (
  91. "group",
  92. models.ForeignKey(
  93. on_delete=django.db.models.deletion.CASCADE,
  94. to="groups.group",
  95. verbose_name="小组",
  96. ),
  97. ),
  98. (
  99. "user",
  100. models.ForeignKey(
  101. on_delete=django.db.models.deletion.CASCADE,
  102. to=settings.AUTH_USER_MODEL,
  103. verbose_name="用户",
  104. ),
  105. ),
  106. ],
  107. options={
  108. "verbose_name": "小组成员关系",
  109. "verbose_name_plural": "小组成员关系们",
  110. "ordering": ["-date_joined"],
  111. "unique_together": {("user", "group")},
  112. },
  113. ),
  114. migrations.AddField(
  115. model_name="group",
  116. name="members",
  117. field=models.ManyToManyField(
  118. blank=True,
  119. related_name="joined_groups",
  120. through="groups.Membership",
  121. through_fields=("group", "user"),
  122. to=settings.AUTH_USER_MODEL,
  123. verbose_name="小组成员",
  124. ),
  125. ),
  126. ]