Question: ```
app_name = 'app_name'
path('url/<uuid:uuid>',someview.as_view(),name='somename')

def get_url():
   return reverse('app_name:somename',args=None)

```

I want get\_url to return 'url/'
Is it possible?

If not, can i somehow get the partial url without the param like **'url/**'?

Answer: 
You can have multiple paths with the same name but with different parameters.

```
app_name = 'app_name'

urlpatterns = [
    path('url/', someview.as_view(), name='somename'),
    path('url/<str:foo>/', someview.as_view(), name='somename'),
]

```

When you use `reverse` the url pattern that matches the name and parameters that you pass will be returned

```
reverse('app_name:somename', kwargs={'foo': 'bar'})  # /url/bar/
reverse('app_name:somename')  # /url/

```
You could use [re\_path](https://docs.djangoproject.com/en/dev/ref/urls/#re-path):

```
from django.urls import re_path

urlpatterns = [
   re_path('url/(?P<some_id>[0-9]*)$', some_view, name='someview-name'),
]

```

This way, `url/` is valid, `url/12` is valid, but `url/foobar` is not.

Note that when you `return reverse('app_name:somename',args=None)`, None is interpreted as a string, so it's better to do `return reverse('app_name:somename',args='')`.
Anyway, `re_path('url/(?P<some_id>[0-9]*|None)$'` also works.