File: reverse_url.py

package info (click to toggle)
python-django-pgschemas 1.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 848 kB
  • sloc: python: 3,887; makefile: 33; sh: 10; sql: 2
file content (25 lines) | stat: -rw-r--r-- 1,083 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from django.conf import settings
from django.urls import reverse

from django_pgschemas.management.commands import SchemaCommand
from django_pgschemas.routing.info import DomainInfo
from django_pgschemas.routing.models import get_primary_domain_for_tenant
from django_pgschemas.routing.urlresolvers import get_urlconf_from_schema
from django_pgschemas.schema import Schema


class Command(SchemaCommand):
    def add_arguments(self, parser):
        super().add_arguments(parser)
        parser.add_argument(
            dest="url_name",
            help="Url name to resolve in the specified schema",
        )

    def handle_schema(self, schema: Schema, *args, **options):
        if schema.is_dynamic:
            primary_domain = get_primary_domain_for_tenant(schema)
            schema.routing = DomainInfo(domain=primary_domain.domain, folder=primary_domain.folder)
        else:
            schema.routing = DomainInfo(domain=settings.TENANTS[schema.schema_name]["DOMAINS"][0])
        self.stdout.write(reverse(options["url_name"], urlconf=get_urlconf_from_schema(schema)))