1- from django .db .models import Model , CharField , DateField , ForeignKey , Manager
1+ from django .db .models import Model , CharField , DateField , BooleanField , ForeignKey , Manager
22
33
44# this app
@@ -27,7 +27,7 @@ class ModelWithUniqueSlugDate(Model):
2727 slug = AutoSlugField (unique_with = 'date' )
2828
2929
30- class ModelWithUniqueSlugDay (Model ): # same as ...Date, just more explicit
30+ class ModelWithUniqueSlugDay (Model ): # same as ...Date, just more explicit
3131 date = DateField ()
3232 slug = AutoSlugField (unique_with = 'date__day' )
3333
@@ -82,6 +82,8 @@ class ModelWithCustomPrimaryKey(Model):
8282
8383
8484custom_slugify = lambda value : default_slugify (value ).replace ('-' , '_' )
85+
86+
8587class ModelWithCustomSlugifier (Model ):
8688 slug = AutoSlugField (unique = True , slugify = custom_slugify )
8789
@@ -144,3 +146,27 @@ class ModeltranslationOne(Model):
144146 title = CharField (max_length = 255 )
145147 description = CharField (max_length = 255 )
146148 slug = AutoSlugField (populate_from = 'title' , always_update = True , unique = True )
149+
150+
151+ class NonDeletedObjects (Manager ):
152+ def get_queryset (self ):
153+ return super (NonDeletedObjects , self ).get_queryset ().filter (is_deleted = False )
154+
155+
156+ class AbstractModelWithCustomManager (Model ):
157+ is_deleted = BooleanField (default = False )
158+
159+ objects = NonDeletedObjects ()
160+ all_objects = Manager ()
161+
162+ class Meta :
163+ abstract = True
164+
165+ def delete (self , using = None ):
166+ self .is_deleted = True
167+ self .save ()
168+
169+
170+ class NonDeletableModelWithUniqueSlug (AbstractModelWithCustomManager ):
171+ name = CharField (max_length = 200 )
172+ slug = AutoSlugField (populate_from = 'name' , unique = True , manager_name = 'all_objects' )
0 commit comments