См. приведенный ниже пример. Это поможет устранить ваше сомнение
Example Result
parseInt("4") 4
parseInt("5aaa") 5
parseInt("4.33333") 4
parseInt("aaa"); NaN (means "Not a Number")
с помощью функции parseint. Оно будет давать только op целого числа, а не строку
Поскольку вы хотите перенаправить на представление login
, если параметр pubpgp
не указан или если он указан и указывает на правильный алгоритм, то для этого нужно просто внести небольшую поправку в условное выражение: [113 ]
def signup(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
pubpgp = request.POST.get('pubpgp')
# Allow redirect if pubpgp is empty or not empty but correct algorithm
if not pubpgp or PGPKey.from_blob(pubpgp.rstrip("\r\n"))[0].key_algorithm == PubKeyAlgorithm.RSAEncryptOrSign:
form.save()
messages.add_message(request, messages.INFO, "Thanks for you Registration, you are now able to login.")
return redirect(reverse('login'))
else:
messages.add_message(request, messages.INFO, "Only RSA based PGP keys are allowed.")
else:
return render(request, 'signup.html', {'form': form})
else:
form = RegistrationForm()
args = {'form': form}
return render(request, 'signup.html', args)