diff --git a/apps/member/views.py b/apps/member/views.py
index ce3beb39a7dcaaf0073197e7bccc3cda51ed59d3..32b414a5d4beb423b0dddb28fb799d9dd883156b 100644
--- a/apps/member/views.py
+++ b/apps/member/views.py
@@ -8,11 +8,14 @@ from django.utils.translation import gettext_lazy as _
 from django.views.generic import CreateView, DetailView, UpdateView, TemplateView,DeleteView
 from django.views.generic.edit import FormMixin
 from django.contrib.auth.models import User
+from django.contrib import messages
 from django.urls import reverse_lazy
+from django.http import HttpResponseRedirect
+
 from django.db.models import Q
 from django_tables2.views import SingleTableView
 from rest_framework.authtoken.models import Token
-
+from django.core.exceptions import ValidationError
 from note.models import Alias, NoteUser
 from note.models.transactions import Transaction
 from note.tables import HistoryTable, AliasTable
@@ -189,8 +192,22 @@ class AliasView(LoginRequiredMixin,FormMixin,DetailView):
 
 class DeleteAliasView(LoginRequiredMixin, DeleteView):
     model = Alias
+
+    def delete(self,request,*args,**kwargs):
+        try:
+            self.object = self.get_object()
+            self.object.delete()
+        except ValidationError as e:
+            # TODO: pass message to redirected view.
+            messages.error(self.request,str(e))
+        else:
+            messages.success(self.request,_("Alias successfully deleted"))
+        return HttpResponseRedirect(get_success_url)
+    
     def get_success_url(self):
+        print(self.request)
         return reverse_lazy('member:user_alias',kwargs={'pk':self.object.note.user.pk})
+
     def get(self, request, *args, **kwargs):
         return self.post(request, *args, **kwargs)
    
diff --git a/apps/note/models/notes.py b/apps/note/models/notes.py
index 62811735a0bd7c46df48df4fa90758895ec84cf8..8ee83888215a9ca1f6f8d08c806a77891e1ae5b0 100644
--- a/apps/note/models/notes.py
+++ b/apps/note/models/notes.py
@@ -219,14 +219,6 @@ class Alias(models.Model):
             if all(not unicodedata.category(char).startswith(cat)
                    for cat in {'M', 'P', 'Z', 'C'})).casefold()
 
-    def save(self, *args, **kwargs):
-        """
-        Handle normalized_name
-        """
-        self.normalized_name = Alias.normalize(self.name)
-        if len(self.normalized_name) < 256:
-            super().save(*args, **kwargs)
-
     def clean(self):
         normalized_name = Alias.normalize(self.name)
         if len(normalized_name) >= 255:
diff --git a/apps/note/tables.py b/apps/note/tables.py
index c8dbf74a754f94c9854fbffe1874a8d50bb43879..588c374533936f9ab272183aa7b80e0eba44efb1 100644
--- a/apps/note/tables.py
+++ b/apps/note/tables.py
@@ -36,4 +36,4 @@ class AliasTable(tables.Table):
         template_name = 'django_tables2/bootstrap4.html'
 
     delete = tables.LinkColumn('member:user_alias_delete', args=[A('pk')], attrs={
-        'a': {'class': 'btn btn-danger'} },text='delete')
+        'a': {'class': 'btn btn-danger'} },text='delete',accessor='pk')