Update logic of creating and updating links and do not allow any special characters

This commit is contained in:
2024-10-02 19:27:10 +10:00
parent 8caffe82c8
commit d07fcceefe
4 changed files with 20 additions and 6 deletions
+1
View File
@@ -63,6 +63,7 @@ coverage.xml
.python-version
3.12/lib/python3.12/site-packages/
3.12/include
# Tailwind CSS
/static/css/dist/
BIN
View File
Binary file not shown.
Binary file not shown.
+19 -6
View File
@@ -72,6 +72,17 @@ class LinkCreateView(CreateView):
initial['alias'] = alias
return initial
def form_valid(self, form):
alias = form.cleaned_data.get('alias')
if not self.is_valid_alias(alias):
form.add_error('alias', _("Alias cannot contain special characters."))
return self.form_invalid(form)
return super().form_valid(form)
def is_valid_alias(self, alias):
# 检查别名是否包含特殊字符
return alias.isalnum() # 只允许字母和数字
class LinkUpdateView(UpdateView):
model = Link
form_class = LinkForm
@@ -79,13 +90,15 @@ class LinkUpdateView(UpdateView):
success_url = reverse_lazy('link_list')
def form_valid(self, form):
try:
return super().form_valid(form)
except ValidationError as e:
for field, errors in e.message_dict.items():
for error in errors:
messages.error(self.request, f"{error}")
alias = form.cleaned_data.get('alias')
if not self.is_valid_alias(alias):
form.add_error('alias', _("Alias cannot contain special characters."))
return self.form_invalid(form)
return super().form_valid(form)
def is_valid_alias(self, alias):
# 检查别名是否包含特殊字符
return alias.isalnum() # 只允许字母和数字
def form_invalid(self, form):
for field, errors in form.errors.items():