redirectslug unique check and QuerySetWrapper.delete()
This commit is contained in:
parent
bc1b96e43f
commit
07c6c11373
2 changed files with 10 additions and 3 deletions
|
@ -7,8 +7,6 @@ from django.forms.widgets import HiddenInput
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
from shapely.geometry.geo import mapping
|
||||
|
||||
from c3nav.mapdata.models.locations import LocationSlug
|
||||
|
||||
|
||||
class MapitemFormMixin(ModelForm):
|
||||
def __init__(self, *args, request=None, **kwargs):
|
||||
|
@ -73,6 +71,7 @@ class MapitemFormMixin(ModelForm):
|
|||
for slug in self.add_redirect_slugs:
|
||||
self.fields['slug'].run_validators(slug)
|
||||
|
||||
LocationSlug = self.request.changeset.wrap('LocationSlug')
|
||||
for slug in LocationSlug.objects.filter(slug__in=self.add_redirect_slugs).values_list('slug', flat=True)[:1]:
|
||||
raise ValidationError(
|
||||
_('Can not add redirecting slug “%s”: it is already used elsewhere.') % slug
|
||||
|
|
|
@ -98,7 +98,7 @@ class ModelWrapper(BaseWrapper):
|
|||
@classmethod
|
||||
def get_submodels(cls, model):
|
||||
try:
|
||||
return cls._submodels_by_model[cls._obj]
|
||||
return cls._submodels_by_model[model]
|
||||
except:
|
||||
pass
|
||||
all_models = model.__subclasses__()
|
||||
|
@ -529,6 +529,9 @@ class BaseQueryWrapper(BaseWrapper):
|
|||
if segments:
|
||||
raise NotImplementedError
|
||||
|
||||
if filter_type == 'in':
|
||||
return self._filter_values(q, field_name, lambda val: val in filter_value)
|
||||
|
||||
if filter_type == 'lt':
|
||||
return self._filter_values(q, field_name, lambda val: val < filter_value)
|
||||
|
||||
|
@ -682,6 +685,11 @@ class BaseQueryWrapper(BaseWrapper):
|
|||
obj.save()
|
||||
return obj
|
||||
|
||||
@get_queryset
|
||||
def delete(self):
|
||||
for obj in self:
|
||||
obj.delete()
|
||||
|
||||
|
||||
class ManagerWrapper(BaseQueryWrapper):
|
||||
def get_queryset(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue