diff --git a/group/migrations/0006_auto_20151209_1834.py b/group/migrations/0006_auto_20151209_1834.py new file mode 100644 index 00000000..3e5a6e95 --- /dev/null +++ b/group/migrations/0006_auto_20151209_1834.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9 on 2015-12-09 10:34 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('group', '0005_joingrouprequest_accepted'), + ] + + operations = [ + migrations.RenameField( + model_name='group', + old_name='admin', + new_name='created_by', + ), + ] diff --git a/group/migrations/0007_auto_20151209_1836.py b/group/migrations/0007_auto_20151209_1836.py new file mode 100644 index 00000000..937d6f07 --- /dev/null +++ b/group/migrations/0007_auto_20151209_1836.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9 on 2015-12-09 10:36 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('group', '0006_auto_20151209_1834'), + ] + + operations = [ + migrations.CreateModel( + name='AdminGroupRelation', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='group.Group')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'admin_group_relation', + }, + ), + migrations.AddField( + model_name='group', + name='admin', + field=models.ManyToManyField(related_name='managed_groups', through='group.AdminGroupRelation', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterUniqueTogether( + name='admingrouprelation', + unique_together=set([('user', 'group')]), + ), + ] diff --git a/group/models.py b/group/models.py index a2db074a..26059f7e 100644 --- a/group/models.py +++ b/group/models.py @@ -8,10 +8,11 @@ class Group(models.Model): name = models.CharField(max_length=30, unique=True) description = models.TextField() create_time = models.DateTimeField(auto_now_add=True) - admin = models.ForeignKey(User, related_name="my_groups") + created_by = models.ForeignKey(User, related_name="my_groups") # 0是公开 1是需要申请后加入 2是不允许任何人加入 join_group_setting = models.IntegerField(default=1) members = models.ManyToManyField(User, through="UserGroupRelation") + admin = models.ManyToManyField(User, through="AdminGroupRelation", related_name="managed_groups") # 解散小组后,这一项改为False visible = models.BooleanField(default=True) @@ -29,6 +30,16 @@ class UserGroupRelation(models.Model): unique_together = ("group", "user") + +class AdminGroupRelation(models.Model): + user = models.ForeignKey(User) + group = models.ForeignKey(Group) + + class Meta: + db_table = "admin_group_relation" + unique_together = ("user", "group") + + class JoinGroupRequest(models.Model): group = models.ForeignKey(Group) user = models.ForeignKey(User, related_name="my_join_group_requests")