From d4239227292167c23663d6da1ef97832a8be882d Mon Sep 17 00:00:00 2001 From: Alexander Burdeiny Date: Mon, 6 Jun 2016 19:16:45 +0300 Subject: [PATCH] =?UTF-8?q?1379:=20=D0=AD=D1=82=D0=B0=D0=BF=20=E2=84=964?= =?UTF-8?q?=20-=20=D0=9E=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20404=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=84=D0=B8=D0=BB=D1=8F=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accounts/management/__init__.py | 0 accounts/management/commands/__init__.py | 0 .../management/commands/accounts_check_url.py | 29 +++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 accounts/management/__init__.py create mode 100644 accounts/management/commands/__init__.py create mode 100644 accounts/management/commands/accounts_check_url.py diff --git a/accounts/management/__init__.py b/accounts/management/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/accounts/management/commands/__init__.py b/accounts/management/commands/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/accounts/management/commands/accounts_check_url.py b/accounts/management/commands/accounts_check_url.py new file mode 100644 index 00000000..352a6b06 --- /dev/null +++ b/accounts/management/commands/accounts_check_url.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- + +from django.core.management.base import BaseCommand +from accounts.models import User + + +class Command(BaseCommand): + def handle(self, *args, **options): + users = User.objects.all().values_list('pk', 'url').order_by('-date_joined') + self.url_to_pk_dict = dict([(user[1], user[0]) for user in users]) + self.new_urls = {} + for pk, url in users: + self.url_check(pk, url) + + def url_check(self, pk, url, new_url=None): + if not url: + return + + if self.url_to_pk_dict.get((new_url or url), pk) != pk: + new_url = (new_url or url) + 'u' + if self.new_urls.get(new_url, pk) != pk: + new_url = new_url + 'u' + self.url_check(pk, url, new_url) + elif new_url is not None: + self.new_urls[new_url] = pk + user = User.objects.get(pk=pk) + user.url = new_url + user.save() + print(url, self.url_to_pk_dict.get(url), pk, new_url)