Как проверить ошибку валидации в django
Я пытаюсь проверить поля, которые фильтруются пользователем. Если в отфильтрованных данных введен какой-либо специальный символ, то я хочу вывести ошибку проверки в бэкенд.
Я получаю Invalid data in output, если передаю специальные символы по url. но получаю следующую ошибку
invalid data..
Internal Server Error: /sites/live-data/
UnboundLocalError at /sites/live-data/
return render(request, 'live-data.html', {'sites': sites.json(), 'categories': categories.json()})
UnboundLocalError: local variable 'sites' referenced before assignment
вот код
Validations.py
def validateAlphanumeric(alphanumeric):
alphanumeric_pattern = re.compile(r"^[0-9a-zA-Z]*$")
validate_alphanumeric = RegexValidator(alphanumeric_pattern, 'Only alphanumeric characters are allowed.')
try:
validate_alphanumeric(alphanumeric)
return True
except ValidationError:
return False
views.py
def liveData(request):
ip = request.session['ip']
label = ""
category = ""
status = ""
ordering = ""
try:
ordering = request.GET['order_by']
except:
pass
try:
category = request.GET['category']
status = request.GET['status']
except:
pass
if not request.user.is_staff:
label = request.session['label']
site_url = ip+"/sites/list/"
category_url = ip+"/setup/category/list/"
if Validations.validateAlphanumeric(category) and Validations.validateAlphanumeric(status):
print("valid.")
headers = {
'authorization': "Bearer *****",
}
params = {
'label': label,
'category': category,
'status': status,
'ordering': ordering
}
sites = requests.request("GET", site_url, headers=headers, params=params)
categories = requests.request("GET", category_url, headers=headers)
else:
print("invalid data..")
return render(request, 'live-data.html', {'sites': sites.json(), 'categories': categories.json()})