Enhance get_series_images_nested method to support excluding specific series IDs and improve query efficiency
This commit is contained in:
+11
-2
@@ -566,14 +566,18 @@ class Case(models.Model, AuthorMixin, QuestionMixin):
|
|||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_series_images_nested(self, as_json=True):
|
def get_series_images_nested(self, as_json: bool =True, exclude_series_ids: None | list[int] = None):
|
||||||
"""
|
"""
|
||||||
Returns a list of lists, where each inner list contains the image URLs
|
Returns a list of lists, where each inner list contains the image URLs
|
||||||
for a single series in this case, in the order of the series.
|
for a single series in this case, in the order of the series.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
series_qs = self.series.all()
|
||||||
|
if exclude_series_ids is not None:
|
||||||
|
series_qs = self.series.exclude(id__in=exclude_series_ids)
|
||||||
images = [
|
images = [
|
||||||
[image.image.url for image in series.images.all()]
|
[image.image.url for image in series.images.all()]
|
||||||
for series in self.series.all()
|
for series in series_qs.order_by('seriesdetail__sort_order').prefetch_related('images')
|
||||||
]
|
]
|
||||||
|
|
||||||
if as_json:
|
if as_json:
|
||||||
@@ -1232,6 +1236,11 @@ class CaseDetail(models.Model):
|
|||||||
return self.case.history
|
return self.case.history
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
def get_case_series_nested(self, include_priors=True):
|
||||||
|
case = self.case
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class CasePrior(models.Model):
|
class CasePrior(models.Model):
|
||||||
case_detail = models.ForeignKey(CaseDetail, on_delete=models.CASCADE)
|
case_detail = models.ForeignKey(CaseDetail, on_delete=models.CASCADE)
|
||||||
prior_case = models.ForeignKey(Case, on_delete=models.CASCADE, related_name="prior_case")
|
prior_case = models.ForeignKey(Case, on_delete=models.CASCADE, related_name="prior_case")
|
||||||
|
|||||||
Reference in New Issue
Block a user