From c7ce6bb77e4ba178ccf889d8b1fa8fca0ca2e5a6 Mon Sep 17 00:00:00 2001 From: bashmak Date: Sun, 16 Apr 2017 12:08:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B8=20ForeignKey=20=D1=87?= =?UTF-8?q?=D1=82=D0=BE=D0=B1=20=D0=BD=D0=B5=20=D1=83=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D1=8F=D0=BB=D0=B8=D1=81=D1=8C=20=D0=B2=D0=B0=D0=B6=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=B4=D0=B0=D0=BD=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BF?= =?UTF-8?q?=D0=BE=20SQL=20CASCADE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/migrations/0017_auto_20170416_1029.py | 22 +++++++++++++++ abonapp/models.py | 2 +- .../migrations/0006_auto_20170416_1029.py | 21 +++++++++++++++ accounts_app/models.py | 2 +- photo_app/models.py | 10 ++++--- taskapp/migrations/0014_auto_20170416_1029.py | 27 +++++++++++++++++++ taskapp/models.py | 4 +-- 7 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 abonapp/migrations/0017_auto_20170416_1029.py create mode 100644 accounts_app/migrations/0006_auto_20170416_1029.py create mode 100644 taskapp/migrations/0014_auto_20170416_1029.py diff --git a/abonapp/migrations/0017_auto_20170416_1029.py b/abonapp/migrations/0017_auto_20170416_1029.py new file mode 100644 index 0000000..fb70627 --- /dev/null +++ b/abonapp/migrations/0017_auto_20170416_1029.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9 on 2017-04-16 07:29 +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 = [ + ('abonapp', '0016_auto_20170415_1311'), + ] + + operations = [ + migrations.AlterField( + model_name='invoiceforpayment', + name='author', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/abonapp/models.py b/abonapp/models.py index ce424f6..87476a7 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -360,7 +360,7 @@ class InvoiceForPayment(models.Model): comment = models.CharField(max_length=128) date_create = models.DateTimeField(auto_now_add=True) date_pay = models.DateTimeField(blank=True, null=True) - author = models.ForeignKey(UserProfile, related_name='+') + author = models.ForeignKey(UserProfile, related_name='+', on_delete=models.C, blank=True, null=True) def __str__(self): return "%s -> %.2f" % (self.abon.username, self.amount) diff --git a/accounts_app/migrations/0006_auto_20170416_1029.py b/accounts_app/migrations/0006_auto_20170416_1029.py new file mode 100644 index 0000000..edb9807 --- /dev/null +++ b/accounts_app/migrations/0006_auto_20170416_1029.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9 on 2017-04-16 07:29 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts_app', '0005_auto_20170222_2224'), + ] + + operations = [ + migrations.AlterField( + model_name='userprofile', + name='avatar', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='photo_app.Photo'), + ), + ] diff --git a/accounts_app/models.py b/accounts_app/models.py index 110477c..f630c8a 100644 --- a/accounts_app/models.py +++ b/accounts_app/models.py @@ -53,7 +53,7 @@ class UserProfile(AbstractBaseUser, PermissionsMixin): #unique=True, validators=[RegexValidator('^\+[7,8,9,3]\d{10,11}$')] ) - avatar = models.ForeignKey(Photo, null=True, blank=True) + avatar = models.ForeignKey(Photo, null=True, blank=True, on_delete=models.SET_NULL) email = models.EmailField(default='admin@example.ru') USERNAME_FIELD = 'username' diff --git a/photo_app/models.py b/photo_app/models.py index 047a92f..edc9748 100644 --- a/photo_app/models.py +++ b/photo_app/models.py @@ -33,10 +33,14 @@ class Photo(models.Model): im = Image.open(self.image.path) im.thumbnail((759, 759), Image.ANTIALIAS) - hs = hashlib.md5(str(time.time())).hexdigest() + hs = hashlib.md5(str(time.time()).encode()).hexdigest() ext = self.image.path.split('.')[1:][0] - fname = "%s/media/%s.%s" % (BASE_DIR, hs, ext) - + path = "%s/media" % BASE_DIR + fname = "%s/%s.%s" % (path, hs, ext) + if not os.path.exists(path): + os.makedirs(path) + if not os.path.exists(path + '/min'): + os.makedirs(path + '/min') im.save(fname) os.remove(self.image.path) self.image = "%s.%s" % (hs, ext) diff --git a/taskapp/migrations/0014_auto_20170416_1029.py b/taskapp/migrations/0014_auto_20170416_1029.py new file mode 100644 index 0000000..f6a2ec5 --- /dev/null +++ b/taskapp/migrations/0014_auto_20170416_1029.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9 on 2017-04-16 07:29 +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 = [ + ('taskapp', '0013_auto_20170413_1944'), + ] + + operations = [ + migrations.AlterField( + model_name='task', + name='abon', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='abonapp.Abon'), + ), + migrations.AlterField( + model_name='task', + name='author', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/taskapp/models.py b/taskapp/models.py index 649ad70..4c5373d 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -61,7 +61,7 @@ def _delta_add_days(): class Task(models.Model): descr = models.CharField(max_length=128, null=True, blank=True) recipients = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='them_task') - author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') + author = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+', on_delete=models.SET_NULL, null=True, blank=True) #device = models.ForeignKey(Device, related_name='dev') priority = models.CharField(max_length=1, choices=TASK_PRIORITIES, default=TASK_PRIORITIES[2][0]) out_date = models.DateField(null=True, blank=True, default=_delta_add_days) @@ -69,7 +69,7 @@ class Task(models.Model): state = models.CharField(max_length=1, choices=TASK_STATES, default=TASK_STATES[0][0]) attachment = models.ImageField(upload_to='task_attachments/%Y.%m.%d', blank=True, null=True) mode = models.CharField(max_length=2, choices=TASK_TYPES, default=TASK_TYPES[0][0]) - abon = models.ForeignKey(Abon, on_delete=models.SET_NULL, null=True, blank=True, related_name='+') + abon = models.ForeignKey(Abon, null=True, blank=True) class Meta: db_table = 'task'