修改group的models添加小组管理员的多对多字段,把原来的管理员字段重命名为创建者

This commit is contained in:
sxw 2015-12-09 19:48:58 +08:00
parent 3508906691
commit 09de27667d
3 changed files with 70 additions and 1 deletions

View File

@ -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',
),
]

View File

@ -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')]),
),
]

View File

@ -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")