Example #1
0
def path(pattern, view, name=None, **kwargs):
    """ Simplifies django.urls.path

    :param pattern: URL pattern, same syntax as django.urls.path
    :param view: View, can be class or function
    :param name: Name used for reverse, defaults to view.name if exists
    :param kwargs: Keyword arguments for the view
    :return: An object that can be added to urlpatterns
    """

    if name is None:
        try:
            name = view.name
        except AttributeError:
            pass

    if name is None:
        logger.warning(f'Path {pattern} to view {view} missing name.')

    try:
        if issubclass(view, View):
            # logger.debug(f'URL View {view} = {name}')
            return _path(pattern, view.as_view(), kwargs=kwargs, name=name)
    except TypeError:
        pass
    if isinstance(view, str):
        return _path(pattern,
                     TemplateView.as_view(template_name=view),
                     kwargs=kwargs,
                     name=name)
    return _path(pattern, view, name=name, kwargs=kwargs)
Example #2
0
 def _get_self_urls(self) -> _typing.Iterator:
     if self.LIST_ACTIONS:
         yield _path(
             '',
             view=self._list_view,
             name=self._list_view_name,
         )
     if self.DETAIL_ACTIONS:
         yield _path(
             self._detail_route,
             view=self._detail_view,
             name=self._detail_view_name,
         )
Example #3
0
 def _get_self_urls(self) -> _typing.Iterator:
     yield _path(
         '',
         view=self.__view,
         name=self.__name,
         **self.__kwargs,
     )
    def urls(self):
        self.verbose_name = get_verbose_name(self.Model)
        self.verbose_name_plural = self.Model._meta.verbose_name_plural

        self.list_url = self.verbose_name_plural
        self.list_ajax_url = "list_ajax_%s" % self.verbose_name
        self.add_url = "add_%s" % self.verbose_name
        self.delete_url = "delete_%s" % self.verbose_name
        self.edit_url = "edit_%s" % self.verbose_name

        urls = []
        if ('list' in self.methods):
            urls += [_path('', self.list, name=self.list_url)]
        if ('list-ajax' in self.methods):
            urls += [
                _path('list-ajax/', self.list_ajax, name=self.list_ajax_url)
            ]
        if ('add' in self.methods):
            urls += [_path('add/', self.add, name=self.add_url)]
        if ('delete' in self.methods):
            urls += [
                _path('<int:pk>/delete/', self.delete, name=self.delete_url)
            ]
        if ('edit' in self.methods):
            urls += [_path('<int:pk>/', self.edit, name=self.edit_url)]

        if self.verbose_name in self.add_urls:
            for url in self.add_urls[self.verbose_name]:
                urls += [_path(url["path"], url["func"], name=url["name"])]

        return include(urls)
Example #5
0
from django.urls import path as _path

from . import views as _views

urlpatterns = [
    _path("create-list/", _views.create_list, name="create-list"),
    _path("<int:list_id>/add-item/", _views.add_item, name="add-item"),
]
Example #6
0
def path(route, view, kwargs=None, name=None):
    if not name:
        name = get_view_name(view)
    return _path(route, view, kwargs=kwargs, name=name)
Example #7
0
 def _get_nested_urls(self) -> _typing.Iterator:
     for route, router in self._nested.items():
         yield _path(
             route,
             _include(router.urls),
         )
Example #8
0
 def _get_self_urls(self) -> _typing.Iterator:
     yield _path(
         '',
         view=self._view,
     )
Example #9
0
from django.urls import path as _path

from . import views as _views

urlpatterns = [
    _path("create-account/", _views.create_account, name="create-account"),
    _path("logout/", _views.logout, name="logout"),
    _path("login/", _views.login, name="login"),
]
Example #10
0
from django.urls import path as _path

from . import views as _views

urlpatterns = [
    _path("lists/", _views.ListAPIView.as_view(), name="lists"),
    _path("lists/<int:list_id>/",
          _views.ListDetailAPIView.as_view(),
          name="list-detail"),
]
Example #11
0
from django.contrib import admin
from django.urls import path as _path, include as _include

urlpatterns = [
    _path("admin/", admin.site.urls),
    _path("", _include("accounts.urls")),
    _path("", _include("pages.urls")),
    _path("api/", _include("lists.api.urls")),
    _path("lists/", _include("lists.urls")),
]
Example #12
0
 def _get_nested_urls(self) -> _typing.Iterator:
     yield _path(
         self._detail_route,
         _include(list(super()._get_nested_urls())),
     )
Example #13
0
from django.urls import path as _path

from . import views as _views

urlpatterns = [
    _path(
        "",
        _views.index,
        name="index",
    ),
]