%global _empty_manifest_terminate_build 0 Name: python-urlman Version: 2.0.1 Release: 1 Summary: Django URL pattern helpers License: Apache Software License URL: https://github.com/andrewgodwin/urlman Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a9/af/9973893f12e1ef71d5f42a049bad611a617a9349c8bb0b9b8f6003183565/urlman-2.0.1.tar.gz BuildArch: noarch %description A nicer way to do URLs for Django models. Replaces things like ``get_absolute_url`` with a ``.urls`` attribute that can reference other URLs and build sensible trees of things, and can then be accessed using ``instance.urls.name``. This is so you can have URLs on your model instances directly (rather than reversing through the url lookup functions, which is not only slow but often hard to supply arguments to). You can just throw ``{{ instance.urls.view }}`` into a template to get a link. It also lets you use Python string formatting syntax to place arguments into URLs from the model instance itself or from other URLs in the same set. Example: import urlman class Group(models.Model): class urls(urlman.Urls): view = "/{self.slug}/" users = "{view}users/" admin = "{view}admin/" def my_view(request): group = ... return redirect(group.urls.view) It's suggested that you use "view" as the equivalent name for ``get_absolute_url``, and have a function like this on your model: def get_absolute_url(self): return self.urls.view To build a full URL use the ``full`` method like this: def my_view(request): group = ... return redirect(group.urls.admin.full(scheme='https')) You can implement the `get_scheme(url)` and `get_hostname(url)` methods on your `Url` class to change your default theme and hostname from the urlman defaults of `'http'` and `'localhost'`, respectively. If you use Django REST Framework, you can use ``urlman.UrlManField`` to provide an object with a set of URLs. It is used like this (only the ``urls`` parameter is required): from urlman.serializers import UrlManField class MySerializer(ModelSerializer): urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True) %package -n python3-urlman Summary: Django URL pattern helpers Provides: python-urlman BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-urlman A nicer way to do URLs for Django models. Replaces things like ``get_absolute_url`` with a ``.urls`` attribute that can reference other URLs and build sensible trees of things, and can then be accessed using ``instance.urls.name``. This is so you can have URLs on your model instances directly (rather than reversing through the url lookup functions, which is not only slow but often hard to supply arguments to). You can just throw ``{{ instance.urls.view }}`` into a template to get a link. It also lets you use Python string formatting syntax to place arguments into URLs from the model instance itself or from other URLs in the same set. Example: import urlman class Group(models.Model): class urls(urlman.Urls): view = "/{self.slug}/" users = "{view}users/" admin = "{view}admin/" def my_view(request): group = ... return redirect(group.urls.view) It's suggested that you use "view" as the equivalent name for ``get_absolute_url``, and have a function like this on your model: def get_absolute_url(self): return self.urls.view To build a full URL use the ``full`` method like this: def my_view(request): group = ... return redirect(group.urls.admin.full(scheme='https')) You can implement the `get_scheme(url)` and `get_hostname(url)` methods on your `Url` class to change your default theme and hostname from the urlman defaults of `'http'` and `'localhost'`, respectively. If you use Django REST Framework, you can use ``urlman.UrlManField`` to provide an object with a set of URLs. It is used like this (only the ``urls`` parameter is required): from urlman.serializers import UrlManField class MySerializer(ModelSerializer): urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True) %package help Summary: Development documents and examples for urlman Provides: python3-urlman-doc %description help A nicer way to do URLs for Django models. Replaces things like ``get_absolute_url`` with a ``.urls`` attribute that can reference other URLs and build sensible trees of things, and can then be accessed using ``instance.urls.name``. This is so you can have URLs on your model instances directly (rather than reversing through the url lookup functions, which is not only slow but often hard to supply arguments to). You can just throw ``{{ instance.urls.view }}`` into a template to get a link. It also lets you use Python string formatting syntax to place arguments into URLs from the model instance itself or from other URLs in the same set. Example: import urlman class Group(models.Model): class urls(urlman.Urls): view = "/{self.slug}/" users = "{view}users/" admin = "{view}admin/" def my_view(request): group = ... return redirect(group.urls.view) It's suggested that you use "view" as the equivalent name for ``get_absolute_url``, and have a function like this on your model: def get_absolute_url(self): return self.urls.view To build a full URL use the ``full`` method like this: def my_view(request): group = ... return redirect(group.urls.admin.full(scheme='https')) You can implement the `get_scheme(url)` and `get_hostname(url)` methods on your `Url` class to change your default theme and hostname from the urlman defaults of `'http'` and `'localhost'`, respectively. If you use Django REST Framework, you can use ``urlman.UrlManField`` to provide an object with a set of URLs. It is used like this (only the ``urls`` parameter is required): from urlman.serializers import UrlManField class MySerializer(ModelSerializer): urls = UrlManField(urls=['view', 'edit'], attribute='urls', full=True) %prep %autosetup -n urlman-2.0.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-urlman -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 2.0.1-1 - Package Spec generated