From 5c057f6befcf44bee628129b9ce94d08efd1ad89 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Tue, 22 Jul 2025 15:50:45 +0530 Subject: [PATCH 1/8] Fix many_to_one --- tests/many_to_one/models.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/many_to_one/models.py b/tests/many_to_one/models.py index cca7e798179..e2adc9c2f31 100644 --- a/tests/many_to_one/models.py +++ b/tests/many_to_one/models.py @@ -4,6 +4,7 @@ To define a many-to-one relationship, use ``ForeignKey()``. """ from django.db import models +from django_singlestore.schema import ModelStorageManager class Reporter(models.Model): @@ -72,6 +73,7 @@ class Parent(models.Model): bestchild = models.ForeignKey( "Child", models.SET_NULL, null=True, related_name="favored_by" ) + objects = ModelStorageManager("REFERENCE") class ParentStringPrimaryKey(models.Model): From 3579eb65bb31da1ad2eba692c9b90a5787166757 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Tue, 22 Jul 2025 16:24:12 +0530 Subject: [PATCH 2/8] Fix m2m_and_m2o --- tests/m2m_and_m2o/models.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/m2m_and_m2o/models.py b/tests/m2m_and_m2o/models.py index 6a5b0b29c98..9a4faba053e 100644 --- a/tests/m2m_and_m2o/models.py +++ b/tests/m2m_and_m2o/models.py @@ -12,7 +12,7 @@ class User(models.Model): class Issue(models.Model): num = models.IntegerField() - cc = models.ManyToManyField(User, blank=True, related_name="test_issue_cc") + cc = models.ManyToManyField("User", blank=True, related_name="test_issue_cc", through="IssueUser") client = models.ForeignKey(User, models.CASCADE, related_name="test_issue_client") class Meta: @@ -22,5 +22,23 @@ def __str__(self): return str(self.num) +class IssueUser(models.Model): + issue = models.ForeignKey(Issue, on_delete=models.CASCADE) + user = models.ForeignKey(User, on_delete=models.CASCADE) + + class Meta: + unique_together = (('issue', 'user'),) + db_table = "m2m_and_m2o_issue_user" + + class StringReferenceModel(models.Model): - others = models.ManyToManyField("StringReferenceModel") + others = models.ManyToManyField("StringReferenceModel", through="StringReferenceModelStringReferenceModel") + + +class StringReferenceModelStringReferenceModel(models.Model): + from_stringreferencemodel = models.ForeignKey(StringReferenceModel, on_delete=models.CASCADE, related_name="from_stringreferencemodel") + to_stringreferencemodel = models.ForeignKey(StringReferenceModel, on_delete=models.CASCADE, related_name="to_stringreferencemodel") + + class Meta: + unique_together = (('from_stringreferencemodel', 'to_stringreferencemodel'),) + db_table = "m2m_and_m2o_stringreferencemodel_stringreferencemodel" From 0a8ed99d91dc1db220aae589d28f3a85126465ce Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Tue, 22 Jul 2025 16:49:27 +0530 Subject: [PATCH 3/8] Fix string_lookup --- tests/string_lookup/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/string_lookup/models.py b/tests/string_lookup/models.py index 71510f5b2fb..7933e6028c5 100644 --- a/tests/string_lookup/models.py +++ b/tests/string_lookup/models.py @@ -1,5 +1,5 @@ from django.db import models - +from django_singlestore.schema import ModelStorageManager class Foo(models.Model): name = models.CharField(max_length=50) @@ -20,6 +20,7 @@ class Whiz(models.Model): class Child(models.Model): parent = models.OneToOneField("Base", models.CASCADE) name = models.CharField(max_length=50) + objects = ModelStorageManager("REFERENCE") class Base(models.Model): From 7ff33119ad24e43fa8c451fc0d3071610630ab5e Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 23 Jul 2025 01:34:59 +0530 Subject: [PATCH 4/8] Fix select_related --- tests/select_related/models.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/select_related/models.py b/tests/select_related/models.py index d407dbdb110..b2629c8d899 100644 --- a/tests/select_related/models.py +++ b/tests/select_related/models.py @@ -68,7 +68,16 @@ class Topping(models.Model): class Pizza(models.Model): name = models.CharField(max_length=100) - toppings = models.ManyToManyField(Topping) + toppings = models.ManyToManyField("Topping", through="PizzaTopping") + + +class PizzaTopping(models.Model): + pizza = models.ForeignKey(Pizza, on_delete=models.CASCADE) + topping = models.ForeignKey(Topping, on_delete=models.CASCADE) + + class Meta: + unique_together = (('pizza', 'topping'),) + db_table = "select_related_pizza_topping" class TaggedItem(models.Model): From 0990ce8498b62a8f80a7c2c75e1c8424c556be02 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 23 Jul 2025 01:47:08 +0530 Subject: [PATCH 5/8] Fix select_related_onetoone --- tests/select_related_onetoone/models.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/select_related_onetoone/models.py b/tests/select_related_onetoone/models.py index 5ffb6bfd8c8..d5f6138d490 100644 --- a/tests/select_related_onetoone/models.py +++ b/tests/select_related_onetoone/models.py @@ -1,4 +1,5 @@ from django.db import models +from django_singlestore.schema import ModelStorageManager class User(models.Model): @@ -10,6 +11,7 @@ class UserProfile(models.Model): user = models.OneToOneField(User, models.CASCADE) city = models.CharField(max_length=100) state = models.CharField(max_length=2) + objects = ModelStorageManager("REFERENCE") class UserStatResult(models.Model): @@ -20,11 +22,15 @@ class UserStat(models.Model): user = models.OneToOneField(User, models.CASCADE, primary_key=True) posts = models.IntegerField() results = models.ForeignKey(UserStatResult, models.CASCADE) + objects = ModelStorageManager("REFERENCE") + class StatDetails(models.Model): base_stats = models.OneToOneField(UserStat, models.CASCADE) comments = models.IntegerField() + objects = ModelStorageManager("REFERENCE") + class AdvancedUserStat(UserStat): @@ -38,6 +44,8 @@ class Image(models.Model): class Product(models.Model): name = models.CharField(max_length=100) image = models.OneToOneField(Image, models.SET_NULL, null=True) + objects = ModelStorageManager("REFERENCE") + class Parent1(models.Model): @@ -52,11 +60,14 @@ class Parent2(models.Model): class Child1(Parent1, Parent2): value = models.IntegerField() + objects = ModelStorageManager("REFERENCE") class Child2(Parent1): parent2 = models.OneToOneField(Parent2, models.CASCADE) value = models.IntegerField() + objects = ModelStorageManager("REFERENCE") + class Child3(Child2): @@ -76,3 +87,4 @@ class LinkedList(models.Model): blank=True, null=True, ) + objects = ModelStorageManager("REFERENCE") From cf486b6a7ec2bf3c015054334a24ceb79070abaa Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 23 Jul 2025 01:55:33 +0530 Subject: [PATCH 6/8] test_client_regress --- tests/test_client_regress/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_client_regress/models.py b/tests/test_client_regress/models.py index 4a18828075d..5529055dff7 100644 --- a/tests/test_client_regress/models.py +++ b/tests/test_client_regress/models.py @@ -1,5 +1,6 @@ from django.contrib.auth.models import AbstractBaseUser, BaseUserManager from django.db import models +from django_singlestore.schema import ModelStorageManager class CustomUser(AbstractBaseUser): @@ -8,5 +9,7 @@ class CustomUser(AbstractBaseUser): USERNAME_FIELD = "email" + objects = ModelStorageManager("REFERENCE") + class Meta: app_label = "test_client_regress" From d6b0dc002fb9112dd4059d34c347c9c2866d4fe4 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 23 Jul 2025 02:03:11 +0530 Subject: [PATCH 7/8] Fix inline_formsets tests --- tests/inline_formsets/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/inline_formsets/models.py b/tests/inline_formsets/models.py index f4c06e8fac4..a44266f0e02 100644 --- a/tests/inline_formsets/models.py +++ b/tests/inline_formsets/models.py @@ -1,4 +1,5 @@ from django.db import models +from django_singlestore.schema import ModelStorageManager class School(models.Model): @@ -27,6 +28,8 @@ class Poem(models.Model): poet = models.ForeignKey(Poet, models.CASCADE) name = models.CharField(max_length=100) + objects = ModelStorageManager("ROWSTORE REFERENCE") + class Meta: unique_together = ("poet", "name") From 1f691e6d661423df494cac0c4abfb955d1bff937 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 23 Jul 2025 02:28:38 +0530 Subject: [PATCH 8/8] Fix model_package tests --- tests/model_package/models/article.py | 22 ++++++++++++++++++++-- tests/model_package/tests.py | 11 ++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/tests/model_package/models/article.py b/tests/model_package/models/article.py index f664dc08c5f..79b255b0f31 100644 --- a/tests/model_package/models/article.py +++ b/tests/model_package/models/article.py @@ -6,6 +6,24 @@ class Site(models.Model): class Article(models.Model): - sites = models.ManyToManyField(Site) + sites = models.ManyToManyField("Site", through="ArticleSite") headline = models.CharField(max_length=100) - publications = models.ManyToManyField("model_package.Publication", blank=True) + publications = models.ManyToManyField("model_package.Publication", blank=True, through="Articlemodel_package") + + +class ArticleSite(models.Model): + article = models.ForeignKey(Article, on_delete=models.CASCADE) + site = models.ForeignKey(Site, on_delete=models.CASCADE) + + class Meta: + unique_together = (('article', 'site'),) + db_table = "model_package_article_site" + + +class Articlemodel_package(models.Model): + article = models.ForeignKey(Article, on_delete=models.CASCADE) + publication = models.ForeignKey("model_package.Publication", on_delete=models.CASCADE) + + class Meta: + unique_together = (('article', 'publication'),) + db_table = "model_package_article_publications" diff --git a/tests/model_package/tests.py b/tests/model_package/tests.py index aa625465a6a..a9dd1a68859 100644 --- a/tests/model_package/tests.py +++ b/tests/model_package/tests.py @@ -8,7 +8,16 @@ class Advertisement(models.Model): customer = models.CharField(max_length=100) - publications = models.ManyToManyField("model_package.Publication", blank=True) + publications = models.ManyToManyField("model_package.Publication", blank=True, through="Advertisementmodel_package") + + +class Advertisementmodel_package(models.Model): + advertisement = models.ForeignKey(Advertisement, on_delete=models.CASCADE) + publication = models.ForeignKey("model_package.Publication", on_delete=models.CASCADE) + + class Meta: + unique_together = (('advertisement', 'publication'),) + db_table = "model_package_advertisement_publications" class ModelPackageTests(TestCase):