[FIX] HORILLA VIEWS: Fix ReverseOneToOneDescriptor and ForwardManyToOneDescriptor issue while sorting

This commit is contained in:
Horilla
2024-07-30 14:20:55 +05:30
parent db7f2f1a99
commit 47fbb51538
3 changed files with 13 additions and 6 deletions

View File

@@ -11,7 +11,11 @@ from django import template
from django.contrib import messages
from django.core.cache import cache as CACHE
from django.core.paginator import Paginator
from django.db.models.fields.related_descriptors import ForwardManyToOneDescriptor
from django.db.models.fields.related import ForeignKey
from django.db.models.fields.related_descriptors import (
ForwardManyToOneDescriptor,
ReverseOneToOneDescriptor,
)
from django.http import HttpResponse
from django.middleware.csrf import get_token
from django.shortcuts import redirect, render
@@ -236,8 +240,12 @@ def getmodelattribute(value, attr: str):
result = getattr(result, attr)
if isinstance(result, ForwardManyToOneDescriptor):
result = result.field.related_model
else:
return None
elif hasattr(result, "field") and isinstance(result.field, ForeignKey):
result = getattr(result.field.remote_field.model, attr, None)
elif hasattr(result, "related") and isinstance(
result, ReverseOneToOneDescriptor
):
result = getattr(result.related.related_model, attr, None)
return result