mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
rrs: make changes to support Django 2.2
Removed obsolete references to django.core.urlresolvers. Added the
newly required on_delete parameters to foreign key relationships in
models.py and in all migrations.
(Amber Elliot's 2d526f9b0d
served as a
reference for these changes).
Signed-off-by: Paul Eggleton <paul.eggleton@linux.microsoft.com>
This commit is contained in:
parent
e01254dd0d
commit
fdc8209b29
|
@ -239,7 +239,7 @@ class Migration(migrations.Migration):
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
||||||
('distro', models.CharField(max_length=100, blank=True)),
|
('distro', models.CharField(max_length=100, blank=True)),
|
||||||
('alias', models.CharField(max_length=100, blank=True)),
|
('alias', models.CharField(max_length=100, blank=True)),
|
||||||
('recipe', models.ForeignKey(to='layerindex.Recipe')),
|
('recipe', models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -255,7 +255,7 @@ class Migration(migrations.Migration):
|
||||||
('title', models.CharField(max_length=255, blank=True)),
|
('title', models.CharField(max_length=255, blank=True)),
|
||||||
('date', models.DateTimeField(db_index=True)),
|
('date', models.DateTimeField(db_index=True)),
|
||||||
('sha1', models.CharField(max_length=64, unique=True)),
|
('sha1', models.CharField(max_length=64, unique=True)),
|
||||||
('author', models.ForeignKey(to='rrs.Maintainer')),
|
('author', models.ForeignKey(to='rrs.Maintainer', on_delete=models.CASCADE)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -267,8 +267,8 @@ class Migration(migrations.Migration):
|
||||||
('version', models.CharField(max_length=100, blank=True)),
|
('version', models.CharField(max_length=100, blank=True)),
|
||||||
('author_date', models.DateTimeField(db_index=True)),
|
('author_date', models.DateTimeField(db_index=True)),
|
||||||
('commit_date', models.DateTimeField(db_index=True)),
|
('commit_date', models.DateTimeField(db_index=True)),
|
||||||
('maintainer', models.ForeignKey(blank=True, to='rrs.Maintainer')),
|
('maintainer', models.ForeignKey(blank=True, to='rrs.Maintainer', on_delete=models.CASCADE)),
|
||||||
('recipe', models.ForeignKey(to='layerindex.Recipe')),
|
('recipe', models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
|
@ -302,32 +302,32 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipeupstream',
|
model_name='recipeupstream',
|
||||||
name='history',
|
name='history',
|
||||||
field=models.ForeignKey(to='rrs.RecipeUpstreamHistory'),
|
field=models.ForeignKey(to='rrs.RecipeUpstreamHistory', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipeupstream',
|
model_name='recipeupstream',
|
||||||
name='recipe',
|
name='recipe',
|
||||||
field=models.ForeignKey(to='layerindex.Recipe'),
|
field=models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipemaintainer',
|
model_name='recipemaintainer',
|
||||||
name='history',
|
name='history',
|
||||||
field=models.ForeignKey(to='rrs.RecipeMaintainerHistory'),
|
field=models.ForeignKey(to='rrs.RecipeMaintainerHistory', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipemaintainer',
|
model_name='recipemaintainer',
|
||||||
name='maintainer',
|
name='maintainer',
|
||||||
field=models.ForeignKey(to='rrs.Maintainer'),
|
field=models.ForeignKey(to='rrs.Maintainer', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipemaintainer',
|
model_name='recipemaintainer',
|
||||||
name='recipe',
|
name='recipe',
|
||||||
field=models.ForeignKey(to='layerindex.Recipe'),
|
field=models.ForeignKey(to='layerindex.Recipe', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='milestone',
|
model_name='milestone',
|
||||||
name='release',
|
name='release',
|
||||||
field=models.ForeignKey(to='rrs.Release'),
|
field=models.ForeignKey(to='rrs.Release', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
migrations.AlterUniqueTogether(
|
migrations.AlterUniqueTogether(
|
||||||
name='milestone',
|
name='milestone',
|
||||||
|
|
|
@ -25,8 +25,8 @@ class Migration(migrations.Migration):
|
||||||
name='MaintenancePlanLayerBranch',
|
name='MaintenancePlanLayerBranch',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
|
||||||
('layerbranch', models.ForeignKey(to='layerindex.LayerBranch')),
|
('layerbranch', models.ForeignKey(to='layerindex.LayerBranch', on_delete=models.CASCADE)),
|
||||||
('plan', models.ForeignKey(to='rrs.MaintenancePlan')),
|
('plan', models.ForeignKey(to='rrs.MaintenancePlan', on_delete=models.CASCADE)),
|
||||||
],
|
],
|
||||||
options={'verbose_name_plural': 'Maintenance plan layer branches'},
|
options={'verbose_name_plural': 'Maintenance plan layer branches'},
|
||||||
),
|
),
|
||||||
|
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='release',
|
model_name='release',
|
||||||
name='plan',
|
name='plan',
|
||||||
field=models.ForeignKey(null=True, to='rrs.MaintenancePlan'),
|
field=models.ForeignKey(null=True, to='rrs.MaintenancePlan', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='release',
|
model_name='release',
|
||||||
name='plan',
|
name='plan',
|
||||||
field=models.ForeignKey(to='rrs.MaintenancePlan'),
|
field=models.ForeignKey(to='rrs.MaintenancePlan', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -16,7 +16,7 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='maintenanceplan',
|
model_name='maintenanceplan',
|
||||||
name='admin',
|
name='admin',
|
||||||
field=models.ForeignKey(blank=True, null=True, help_text='Plan administrator', to=settings.AUTH_USER_MODEL),
|
field=models.ForeignKey(blank=True, null=True, help_text='Plan administrator', to=settings.AUTH_USER_MODEL, on_delete=models.SET_NULL),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='maintenanceplan',
|
model_name='maintenanceplan',
|
||||||
|
|
|
@ -16,12 +16,12 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='maintenanceplanlayerbranch',
|
model_name='maintenanceplanlayerbranch',
|
||||||
name='python2_environment',
|
name='python2_environment',
|
||||||
field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 2 commits', related_name='maintplan_layerbranch_python2_set', to='layerindex.PythonEnvironment'),
|
field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 2 commits', related_name='maintplan_layerbranch_python2_set', to='layerindex.PythonEnvironment', on_delete=models.SET_NULL),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='maintenanceplanlayerbranch',
|
model_name='maintenanceplanlayerbranch',
|
||||||
name='python3_environment',
|
name='python3_environment',
|
||||||
field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 3 commits', related_name='maintplan_layerbranch_python3_set', to='layerindex.PythonEnvironment'),
|
field=models.ForeignKey(blank=True, null=True, help_text='Environment to use for Python 3 commits', related_name='maintplan_layerbranch_python3_set', to='layerindex.PythonEnvironment', on_delete=models.SET_NULL),
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='maintenanceplanlayerbranch',
|
model_name='maintenanceplanlayerbranch',
|
||||||
|
|
|
@ -15,6 +15,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipemaintainerhistory',
|
model_name='recipemaintainerhistory',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(blank=True, null=True, to='layerindex.LayerBranch'),
|
field=models.ForeignKey(blank=True, null=True, to='layerindex.LayerBranch', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='recipeupstreamhistory',
|
model_name='recipeupstreamhistory',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(null=True, to='layerindex.LayerBranch'),
|
field=models.ForeignKey(null=True, to='layerindex.LayerBranch', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='recipeupstreamhistory',
|
model_name='recipeupstreamhistory',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(to='layerindex.LayerBranch'),
|
field=models.ForeignKey(to='layerindex.LayerBranch', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AlterField(
|
migrations.AlterField(
|
||||||
model_name='recipemaintainerhistory',
|
model_name='recipemaintainerhistory',
|
||||||
name='layerbranch',
|
name='layerbranch',
|
||||||
field=models.ForeignKey(to='layerindex.LayerBranch'),
|
field=models.ForeignKey(to='layerindex.LayerBranch', on_delete=models.CASCADE),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -44,11 +44,11 @@ class MaintenancePlan(models.Model):
|
||||||
return '%s' % (self.name)
|
return '%s' % (self.name)
|
||||||
|
|
||||||
class MaintenancePlanLayerBranch(models.Model):
|
class MaintenancePlanLayerBranch(models.Model):
|
||||||
plan = models.ForeignKey(MaintenancePlan)
|
plan = models.ForeignKey(MaintenancePlan, on_delete=models.CASCADE)
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
python3_switch_date = models.DateTimeField('Commit date to switch to Python 3', default=datetime(2016, 6, 2))
|
python3_switch_date = models.DateTimeField('Commit date to switch to Python 3', default=datetime(2016, 6, 2))
|
||||||
python2_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python2_set', blank=True, null=True, help_text='Environment to use for Python 2 commits')
|
python2_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python2_set', blank=True, null=True, help_text='Environment to use for Python 2 commits', on_delete=models.SET_NULL)
|
||||||
python3_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python3_set', blank=True, null=True, help_text='Environment to use for Python 3 commits')
|
python3_environment = models.ForeignKey(PythonEnvironment, related_name='maintplan_layerbranch_python3_set', blank=True, null=True, help_text='Environment to use for Python 3 commits', on_delete=models.SET_NULL)
|
||||||
upgrade_date = models.DateTimeField('Recipe upgrade date', blank=True, null=True)
|
upgrade_date = models.DateTimeField('Recipe upgrade date', blank=True, null=True)
|
||||||
upgrade_rev = models.CharField('Recipe upgrade revision ', max_length=80, blank=True)
|
upgrade_rev = models.CharField('Recipe upgrade revision ', max_length=80, blank=True)
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ class MaintenancePlanLayerBranch(models.Model):
|
||||||
verbose_name_plural = "Maintenance plan layer branches"
|
verbose_name_plural = "Maintenance plan layer branches"
|
||||||
|
|
||||||
class Release(models.Model):
|
class Release(models.Model):
|
||||||
plan = models.ForeignKey(MaintenancePlan)
|
plan = models.ForeignKey(MaintenancePlan, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
start_date = models.DateField(db_index=True)
|
start_date = models.DateField(db_index=True)
|
||||||
end_date = models.DateField(db_index=True)
|
end_date = models.DateField(db_index=True)
|
||||||
|
@ -94,7 +94,7 @@ class Release(models.Model):
|
||||||
return '%s - %s' % (self.plan.name, self.name)
|
return '%s - %s' % (self.plan.name, self.name)
|
||||||
|
|
||||||
class Milestone(models.Model):
|
class Milestone(models.Model):
|
||||||
release = models.ForeignKey(Release)
|
release = models.ForeignKey(Release, on_delete=models.CASCADE)
|
||||||
name = models.CharField(max_length=100)
|
name = models.CharField(max_length=100)
|
||||||
start_date = models.DateField(db_index=True)
|
start_date = models.DateField(db_index=True)
|
||||||
end_date = models.DateField(db_index=True)
|
end_date = models.DateField(db_index=True)
|
||||||
|
@ -197,7 +197,7 @@ class Milestone(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class RecipeSymbol(models.Model):
|
class RecipeSymbol(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
pn = models.CharField(max_length=100, blank=True)
|
pn = models.CharField(max_length=100, blank=True)
|
||||||
summary = models.CharField(max_length=200, blank=True)
|
summary = models.CharField(max_length=200, blank=True)
|
||||||
|
|
||||||
|
@ -249,9 +249,9 @@ class Maintainer(models.Model):
|
||||||
class RecipeMaintainerHistory(models.Model):
|
class RecipeMaintainerHistory(models.Model):
|
||||||
title = models.CharField(max_length=255, blank=True)
|
title = models.CharField(max_length=255, blank=True)
|
||||||
date = models.DateTimeField(db_index=True)
|
date = models.DateTimeField(db_index=True)
|
||||||
author = models.ForeignKey(Maintainer)
|
author = models.ForeignKey(Maintainer, on_delete=models.CASCADE)
|
||||||
sha1 = models.CharField(max_length=64)
|
sha1 = models.CharField(max_length=64)
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ('layerbranch', 'sha1',)
|
unique_together = ('layerbranch', 'sha1',)
|
||||||
|
@ -286,9 +286,9 @@ class RecipeMaintainerHistory(models.Model):
|
||||||
return "%s: %s, %s" % (self.date, self.author.name, self.sha1[:10])
|
return "%s: %s, %s" % (self.date, self.author.name, self.sha1[:10])
|
||||||
|
|
||||||
class RecipeMaintainer(models.Model):
|
class RecipeMaintainer(models.Model):
|
||||||
recipesymbol = models.ForeignKey(RecipeSymbol)
|
recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE)
|
||||||
maintainer = models.ForeignKey(Maintainer)
|
maintainer = models.ForeignKey(Maintainer, on_delete=models.CASCADE)
|
||||||
history = models.ForeignKey(RecipeMaintainerHistory)
|
history = models.ForeignKey(RecipeMaintainerHistory, on_delete=models.CASCADE)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_maintainer_by_recipe_and_history(recipe, history):
|
def get_maintainer_by_recipe_and_history(recipe, history):
|
||||||
|
@ -305,7 +305,7 @@ class RecipeMaintainer(models.Model):
|
||||||
self.maintainer.email)
|
self.maintainer.email)
|
||||||
|
|
||||||
class RecipeUpstreamHistory(models.Model):
|
class RecipeUpstreamHistory(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
start_date = models.DateTimeField(db_index=True)
|
start_date = models.DateTimeField(db_index=True)
|
||||||
end_date = models.DateTimeField(db_index=True)
|
end_date = models.DateTimeField(db_index=True)
|
||||||
|
|
||||||
|
@ -360,8 +360,8 @@ class RecipeUpstream(models.Model):
|
||||||
)
|
)
|
||||||
RECIPE_UPSTREAM_TYPE_CHOICES_DICT = dict(RECIPE_UPSTREAM_TYPE_CHOICES)
|
RECIPE_UPSTREAM_TYPE_CHOICES_DICT = dict(RECIPE_UPSTREAM_TYPE_CHOICES)
|
||||||
|
|
||||||
recipesymbol = models.ForeignKey(RecipeSymbol)
|
recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE)
|
||||||
history = models.ForeignKey(RecipeUpstreamHistory)
|
history = models.ForeignKey(RecipeUpstreamHistory, on_delete=models.CASCADE)
|
||||||
version = models.CharField(max_length=100, blank=True)
|
version = models.CharField(max_length=100, blank=True)
|
||||||
type = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_TYPE_CHOICES, blank=True, db_index=True)
|
type = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_TYPE_CHOICES, blank=True, db_index=True)
|
||||||
status = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_STATUS_CHOICES, blank=True, db_index=True)
|
status = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_STATUS_CHOICES, blank=True, db_index=True)
|
||||||
|
@ -413,7 +413,7 @@ class RecipeUpstream(models.Model):
|
||||||
self.version, self.date)
|
self.version, self.date)
|
||||||
|
|
||||||
class RecipeDistro(models.Model):
|
class RecipeDistro(models.Model):
|
||||||
recipe = models.ForeignKey(Recipe)
|
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
|
||||||
distro = models.CharField(max_length=100, blank=True)
|
distro = models.CharField(max_length=100, blank=True)
|
||||||
alias = models.CharField(max_length=100, blank=True)
|
alias = models.CharField(max_length=100, blank=True)
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ class RecipeDistro(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class RecipeUpgradeGroup(models.Model):
|
class RecipeUpgradeGroup(models.Model):
|
||||||
recipesymbol = models.ForeignKey(RecipeSymbol)
|
recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE)
|
||||||
title = models.CharField(max_length=100, help_text='Group title')
|
title = models.CharField(max_length=100, help_text='Group title')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -440,7 +440,7 @@ class RecipeUpgradeGroup(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class RecipeUpgradeGroupRule(models.Model):
|
class RecipeUpgradeGroupRule(models.Model):
|
||||||
layerbranch = models.ForeignKey(LayerBranch)
|
layerbranch = models.ForeignKey(LayerBranch, on_delete=models.CASCADE)
|
||||||
pn = models.CharField(max_length=100, blank=True, help_text='Regular expression to match recipe to apply to')
|
pn = models.CharField(max_length=100, blank=True, help_text='Regular expression to match recipe to apply to')
|
||||||
version = models.CharField(max_length=100, blank=True, help_text='Regular expression to split version component on')
|
version = models.CharField(max_length=100, blank=True, help_text='Regular expression to split version component on')
|
||||||
license = models.CharField(max_length=100, blank=True, help_text='Regular expression to split license on')
|
license = models.CharField(max_length=100, blank=True, help_text='Regular expression to split license on')
|
||||||
|
@ -494,8 +494,8 @@ class RecipeUpgrade(models.Model):
|
||||||
('M', 'Move'),
|
('M', 'Move'),
|
||||||
)
|
)
|
||||||
|
|
||||||
recipesymbol = models.ForeignKey(RecipeSymbol)
|
recipesymbol = models.ForeignKey(RecipeSymbol, on_delete=models.CASCADE)
|
||||||
maintainer = models.ForeignKey(Maintainer, blank=True)
|
maintainer = models.ForeignKey(Maintainer, blank=True, null=True, on_delete=models.SET_NULL)
|
||||||
sha1 = models.CharField(max_length=40, blank=True)
|
sha1 = models.CharField(max_length=40, blank=True)
|
||||||
title = models.CharField(max_length=1024, blank=True)
|
title = models.CharField(max_length=1024, blank=True)
|
||||||
version = models.CharField(max_length=100, blank=True)
|
version = models.CharField(max_length=100, blank=True)
|
||||||
|
|
|
@ -25,7 +25,7 @@ utils.setup_django()
|
||||||
from django.core.mail import EmailMessage
|
from django.core.mail import EmailMessage
|
||||||
from django.template.loader import get_template
|
from django.template.loader import get_template
|
||||||
from django.template import Context, Template
|
from django.template import Context, Template
|
||||||
from django.core.urlresolvers import reverse
|
from django.urls import reverse
|
||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ from datetime import date, datetime
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.views.generic import TemplateView, ListView, DetailView, RedirectView
|
from django.views.generic import TemplateView, ListView, DetailView, RedirectView
|
||||||
from django.core.urlresolvers import resolve, reverse, reverse_lazy
|
from django.urls import resolve, reverse, reverse_lazy
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user