こんにちは、私も学習中なので的外れな回答であれば申し訳ないです。
少し気になったのが、str:nameの部分で、この部分は
#urls.py
path('shop/<ディレクトリ名orファイル名>/<int:number>', views.detail, name='number'),
という形になると思います。
なので、shopの部分はプロジェクトルーティングの部分となり、<ディレクトリ名>の指定されるアプリケーション側のルーティングに処理を投げるという形になるように思います。
ここではアプリケーション側ルーティングをappsとした例にしています。
こうする事でアプリケーション側のパス指定のshopをアプリケーション側で指定する事は無くなります。多分ですが、こうしなければ、絶対パスの状況を考えるに、パスが繋がらないかと思います。
#shop/urls.py
urlpatterns=[
path("",include('apps.urls'))
]
id名などはない状況で、という事なのでモデルとデータベースの連携を行わないとなれば
必然的に静的ファイルとなるのではないかと思いますので、もしパスコンバータを使用している部分に任意の名前を付けたいのであれば、無理に変数を変えるのではなく、ディレクトリを細分化して構築するというのはどうでしょうか?
パスコンバータが使用できる状況は、モデルデータベースとの連携で、動的に変わるレスポンス情報の場合に限るように思います。
パスコンバータの変数名はモデルとデータベースの主キーとして扱われる物になっているので、
今回の質問内容の状況と合致していないように感じました。
ちなみに以下のコードなのですが
templats
<a href="{% url 'detail' name = 'a' number = 1 %}" class = 'btn-right-radius'>shop</a>
このタグは動かないように思います。urlタグはURLの逆引きの場合にのみ動作すると思いますので、
この部分での変数の代入等は出来ないと思います。
この部分でモデルデータベースからの主キー変数名を動的に取得してという状況を作り出すのであれば、セッションという方法が存在します。
もし、データベースの連携を行う状況で、パスコンバータの変数を任意な値に変える場合には
slug_url_kwarg=を使用した例で以下のようになると思います。
これはapps/urls.pyでのキーワードを変数とするというような形になっています。
#shop/urls.py
urlpatterns=[
path("",include('apps.urls'))
]
#apps/urls.py
app_name = 'apps'
urlpatterns=[
path('apps_detail/<str:detail>', views.Detail.as_view(), name='detail'),
]
#template.html
<a href="{% url 'apps:detail'apps.detail %}" class = 'btn-right-radius'>shop</a>
#views.py
from django.views import generic
class Detail(generic.DetailView):
model= ~~
template_name='template.html'
slug_url_kwarg= 'detail'
形としてはこういった状態になるのではないかという例になります。
動作を確認した訳ではないので、動かなかったらすみません。