From ff97be9e959e5a33096f803b62dc7173fb94b76e Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 10 Aug 2020 15:04:32 +0800 Subject: [PATCH] admin import consumer different --- .../migrations/0021_company_create_admin.py | 21 +++++++++++++++++++ test_server/crm/models.py | 3 ++- test_server/crm/views.py | 12 +++++------ 3 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 test_server/crm/migrations/0021_company_create_admin.py diff --git a/test_server/crm/migrations/0021_company_create_admin.py b/test_server/crm/migrations/0021_company_create_admin.py new file mode 100644 index 0000000..0c63f6a --- /dev/null +++ b/test_server/crm/migrations/0021_company_create_admin.py @@ -0,0 +1,21 @@ +# Generated by Django 3.0.4 on 2020-08-10 06:40 + +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), + ('crm', '0020_consumer_create_admin'), + ] + + operations = [ + migrations.AddField( + model_name='company', + name='create_admin', + field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.DO_NOTHING, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/test_server/crm/models.py b/test_server/crm/models.py index f95a7a4..5a3ae98 100644 --- a/test_server/crm/models.py +++ b/test_server/crm/models.py @@ -12,7 +12,8 @@ class Company(CommonModel): ''' name = models.CharField(max_length=60, verbose_name='名称', unique=True) pid = models.ForeignKey('self', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='父') - + create_admin = models.ForeignKey(UserProfile, default=1, on_delete=models.DO_NOTHING) + class Meta: verbose_name = '客户企业' verbose_name_plural = verbose_name diff --git a/test_server/crm/views.py b/test_server/crm/views.py index d93136b..6fadb3d 100644 --- a/test_server/crm/views.py +++ b/test_server/crm/views.py @@ -131,7 +131,7 @@ class ConsumerViewSet(ModelViewSet): def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) - instance = serializer.save() + instance = serializer.save(create_admin=request.user) if request.data.get('subjects', None): for i in request.data.get('subjects'): PaySubject.objects.get_or_create(consumer = instance, subject__id=i, defaults={'consumer':instance,'subject':Questioncat.objects.get(id=i)}) @@ -294,10 +294,6 @@ class ConsumerViewSet(ModelViewSet): return Response({"error":"工作类别列错误!"}) if sheet['e2'].value != '角色': return Response({"error":"角色列错误!"}) - companydict = {} - companys = Company.objects.filter(is_delete=0) - for i in companys: - companydict[i.name] = i.id m = 3 while sheet['B'+str(m)].value: name = sheet['A'+str(m)].value @@ -309,7 +305,10 @@ class ConsumerViewSet(ModelViewSet): companyname = sheet['C'+str(m)].value if companyname: companyname = companyname.replace(' ', '') - companyobj = Company.objects.get_or_create(name=companyname)[0] + if Company.objects.filter(name=companyname).exists(): + companyobj = Company.objects.get(name=companyname) + else: + companyobj = Company.objects.create(name=companyname, create_admin=request.user) workscope = sheet['d'+str(m)].value role = sheet['e'+str(m)].value if Consumer.objects.filter(username = username).exists(): @@ -317,6 +316,7 @@ class ConsumerViewSet(ModelViewSet): else: obj = Consumer() obj.username = username + obj.create_admin = request.user obj.name = name obj.company = companyobj obj.save()