def METHOD_NAME(
    self, request: HttpRequest, obj: Optional[ResultaatType] = None
) -> Union[ZaakType, None]:
    """
    Track the relevant zaaktype so that we can display/filter information.
    This caches the _zaaktype on the request object, as the model admin instance
    is created only once and re-used for different requests (= not thread safe!). By
    setting the attribute on the request, we cache it for that request only.
    The zaaktype is read in get_form, which generates a ModelForm class for every
    request, so that's thread-safe. This is used in the form class to then set the
    zaaktype for the ResultaatType form instance, which in turn is used to render
    the read-only fields.
    The Django admin code is a bit of a mess to be honest. /sadface
    """
    if not hasattr(request, "_zaaktype"):
        object_id = request.resolver_match.kwargs.get("object_id")
        container = request.POST if request.method == "POST" else request.GET
        zaaktype_pk = container.get("zaaktype")
        # fetch it from the instance we're viewing/editing if possible
        if obj is not None:
            zaaktype = obj.zaaktype
        elif object_id is not None:
            resultaattype = self.get_object(request, object_id)
            zaaktype = resultaattype.zaaktype
        # e.g. on create, fetch it from the URL param
        elif zaaktype_pk:
            zaaktype = ZaakType.objects.filter(pk=zaaktype_pk).first()
        else:
            zaaktype = None
        request._zaaktype = zaaktype
    return request._zaaktype