@login_required
def subdomain_form_view(
request: WSGIRequest, domain_pk: int, pk: int
) -> TemplateResponse | HttpResponseRedirect:
subdomain = get_object_or_null_obj(models.SubDomain, pk=pk)
nav = DomainNavigation()
nav.set_page_title_to_form_action_from_model_instance(subdomain)
nav.breadcrumbs.add(
name=str(get_object_or_404(models.Domain, pk=domain_pk)),
view_name='django_spire:metric:domain:page:detail',
view_kwargs={'pk': domain_pk},
)
if subdomain.pk:
nav.breadcrumbs.add(
subdomain,
view_name='django_spire:metric:domain:page:subdomain_detail',
view_kwargs={'domain_pk': domain_pk, 'pk': subdomain.pk},
)
nav.breadcrumbs.add('Edit' if subdomain.pk else 'New Sub Domain')
subdomain.domain_id = domain_pk
form = forms.SubDomainForm(request.POST or None, instance=subdomain)
Glue.form(request, 'subdomain_form', form, Glue.Access.DELETE)
context = {**nav.as_context()}
return TemplateResponse(
request=request,
context=context,
template='django_spire/metric/domain/page/subdomain_form_page.html',
)