From 18e661ad68e23537a8fb1d2e603be39f92a4b198 Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Tue, 15 Sep 2015 20:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAUser=20=20=20problems=5Fstatus=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E7=B2=BE=E7=AE=80=E4=BA=86=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- account/migrations/0003_auto_20150915_2025.py | 19 +++++++++++++++++++ account/models.py | 3 +-- mq/scripts/info.py | 5 +---- problem/views.py | 2 +- submission/views.py | 5 +---- 5 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 account/migrations/0003_auto_20150915_2025.py diff --git a/account/migrations/0003_auto_20150915_2025.py b/account/migrations/0003_auto_20150915_2025.py new file mode 100644 index 00000000..ff6b0ea1 --- /dev/null +++ b/account/migrations/0003_auto_20150915_2025.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('account', '0002_user_problems_status'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='problems_status', + field=models.TextField(default=b'{}'), + ), + ] diff --git a/account/models.py b/account/models.py index 754e178d..32453336 100644 --- a/account/models.py +++ b/account/models.py @@ -31,8 +31,7 @@ class User(AbstractBaseUser): # 0代表不是管理员 1是普通管理员 2是超级管理员 admin_type = models.IntegerField(default=0) # JSON字典用来表示该用户的问题的解决状态 1为ac,2为正在进行 - problems_status = models.TextField(blank=True) - + problems_status = models.TextField(default="{}") USERNAME_FIELD = 'username' REQUIRED_FIELDS = [] diff --git a/mq/scripts/info.py b/mq/scripts/info.py index 41a21273..9df03344 100644 --- a/mq/scripts/info.py +++ b/mq/scripts/info.py @@ -43,10 +43,7 @@ class MessageQueue(object): except User.DoesNotExist: logger.warning("Submission user does not exist, submission_id: " + submission_id) continue - if user.problems_status: - problems_status = json.loads(user.problems_status) - else: - problems_status = {} + problems_status = json.loads(user.problems_status) problems_status[str(problem.id)] = 1 user.problems_status = json.dumps(problems_status) user.save() diff --git a/problem/views.py b/problem/views.py index 84ca58d8..3b736c9f 100644 --- a/problem/views.py +++ b/problem/views.py @@ -282,7 +282,7 @@ def problem_list_page(request, page=1): except Exception: pass - if request.user.is_authenticated() and request.user.problems_status: + if request.user.is_authenticated(): problems_status = json.loads(request.user.problems_status) else: problems_status = {} diff --git a/submission/views.py b/submission/views.py index baa81d4d..aad15606 100644 --- a/submission/views.py +++ b/submission/views.py @@ -47,10 +47,7 @@ class SubmissionAPIView(APIView): except Exception: return error_response(u"提交判题任务失败") # 修改用户解题状态 - if request.user.problems_status: - problems_status = json.loads(request.user.problems_status) - else: - problems_status = {} + problems_status = json.loads(request.user.problems_status) problems_status[str(data["problem_id"])] = 2 request.user.problems_status = json.dumps(problems_status) request.user.save()