Creiamo un Model con override su 'delete':
class Customer(models.Model):
email = models.EmailField()
nickname = models.CharField(max_length=50)
deleted = models.BooleanField(default = False)
def delete(self):
self.deleted = True
self.save()
Poi in admin.py creiamo un ModelAdmin relativo al nostro 'Customer':
class CustomerAdmin(admin.ModelAdmin):
search_fields = ['nickname']
exclude = ('deleted',)
def queryset(self, request):
return super(CustomerAdmin, self).queryset(request).filter(deleted=False)
Fatto.
Ora nella vista in admin saranno presenti solamente i 'Customer' non cancellati logicamente, sia che venga mostrato l'elenco, sia che venga effettuata una ricerca.
Vi rimando per approfondimenti alla documentazione di Django e ad altri due link interessanti:
Django Trip: Ready, Set, Go
Is there a way to filter a queryset in the django admin?
Ho messo meno tempo a scrivere questo post che a trovar la soluzione! :D
Sani
Nessun commento:
Posta un commento