Ограничение целочисленных значений в урлах django

У меня есть следующий Django URL, который позволяет пользователям зарегистрироваться для любого одного кода безопасности от 1 до 6.

path('add/<int:security_code>/', security_views.RegisterView.as_view(), name='register_code'), 

Url должен отображать шаблон до 6 кодов безопасности, например

https://www.example.com/add/1/ #-- It should work
https://www.example.com/add/2/ #-- It should work
https://www.example.com/add/3/ #-- It should work
https://www.example.com/add/4/ #-- It should work
https://www.example.com/add/5/ #-- It should work
https://www.example.com/add/6/ #-- It should work
https://www.example.com/add/7/ #-- It should throw 404 when the user types a number greater than 6.

Какое изменение мне нужно сделать, чтобы ограничить URL для ограниченных кодов, он должен выдавать ошибку 404 или ошибку плохого запроса, если пользователь вручную вводит другое число. Я не хочу изменять представление, так как мне нужно будет добавить методы get, а также post.

from django.views import generic
from core import models

class RegisterView(generic.edit.CreateView):
    model = models.SecurityCode
    fields = ['name', 'code']

Есть ли способ сделать это, не изменяя часть views?

Вы можете использовать re_path(…) [Django-doc] для задания регулярного выражения:

from django.urls import re_path

re_path(
    'add/(?P<security_code>[1-6])/$',
    security_views.RegisterView.as_view(),
    name='register_code'
),
Вернуться на верх