Это происходит из Python синтаксис регулярного выражения .Синтаксис (? P ...) является именованной группой.Это означает, что сопоставленный текст доступен с использованием заданного имени или с использованием Django в качестве именованного параметра в вашей функции просмотра.Если вы используете квадратные скобки с символом? P, то это неназванная группа, которая доступна с использованием целого числа, которое является порядком, в котором эта группа была захвачена.
Ваше регулярное выражение URL означает следующее ...
^ - match the start of the string
q/ - match a q followed by a slash
(?P<terminal_id>[^/]+) - match at least one character that isn't a slash, give it the name terminal_id
/ - match a slash
(?P<cmd_type>[^/]+) - match at least one character that isn't a slash, give it the name cmd_type
/? - optionality match a slash
$ - match the end of the string