diff --git a/shared/models.py b/shared/models.py index d1e12c9c934263541b3b5d9b1c6ac4400faf8415..3383c1d4f1b2cef2bc57cddb6cf60e3c52abbd85 100644 --- a/shared/models.py +++ b/shared/models.py @@ -296,8 +296,8 @@ class ArticlesMixin(models.Model): fields_reducer = ( lambda assigned, field: assigned - if field.name is "shared" - else assigned | {f"union_{field.name}": F(field.name)} + if field.column == "shared" + else assigned | {f"union_{field.column}": F(field.column)} ) setup_fields_order = lambda orderBy, orderFrom: reduce( lambda orderTo, field: orderTo | {f"{field}": orderFrom[field]}, @@ -306,7 +306,7 @@ class ArticlesMixin(models.Model): ) main_fields = reduce(fields_reducer, main_meta_fields, {}) | { - "union_thumb_image": F("search_image"), + "union_thumb_image_id": F("search_image_id"), } district_fields = setup_fields_order( @@ -322,7 +322,7 @@ class ArticlesMixin(models.Model): main_fields, reduce(fields_reducer, uniweb_meta_fields, {}) | { - "union_author_page": Value( + "union_author_page_id": Value( None, output_field=models.ForeignKey( DistrictArticlePage, blank=True, on_delete=models.SET_NULL @@ -331,7 +331,7 @@ class ArticlesMixin(models.Model): "union_region": Value("", models.CharField()), "union_article_type": Value(0, models.PositiveSmallIntegerField()), "union_is_black": Value(False, models.BooleanField()), - "union_thumb_image": F("search_image"), + "union_thumb_image_id": F("search_image_id"), }, ) @@ -420,13 +420,13 @@ class ArticlesMixin(models.Model): ) # We MUST eval here since we can't turn values() into concrete class instances in QuerySet after union assign_to_model = lambda unioned: lambda assignment, field: assignment | { - field.name: unioned[f"union_{field.name}"] + field.column: unioned[f"union_{field.column}"] } if isinstance(self, DistrictArticlesPage): return list( map( - lambda unioned: DistrictArticlePage.objects.create( + lambda unioned: DistrictArticlePage( **reduce(assign_to_model(unioned), district_meta_fields, {}) ), evaluated,