diff --git a/tests/_utils/setup.sql b/tests/_utils/setup.sql index 8ff9f2cc3179..57e48d01ed4b 100644 --- a/tests/_utils/setup.sql +++ b/tests/_utils/setup.sql @@ -409,3 +409,13 @@ CREATE TABLE `serializers_m2mintermediatedata_anchor` ( KEY (`m2mintermediatedata_id`), KEY (`anchor_id`) ); + +--update_only_fields +CREATE TABLE `update_only_fields_employee_account` ( + `employee_id` BIGINT NOT NULL, + `account_id` BIGINT NOT NULL, + SHARD KEY (`employee_id`), + UNIQUE KEY (`employee_id`, `account_id`), + KEY (`employee_id`), + KEY (`account_id`) +); \ No newline at end of file diff --git a/tests/update_only_fields/models.py b/tests/update_only_fields/models.py index 4810d5b19169..36ffc89912ea 100644 --- a/tests/update_only_fields/models.py +++ b/tests/update_only_fields/models.py @@ -20,9 +20,17 @@ class Employee(Person): profile = models.ForeignKey( "Profile", models.SET_NULL, related_name="profiles", null=True ) - accounts = models.ManyToManyField("Account", related_name="employees", blank=True) + accounts = models.ManyToManyField("Account", related_name="employees", blank=True, through="EmployeeAccount") +class EmployeeAccount(models.Model): + employee = models.ForeignKey(Employee, on_delete=models.CASCADE) + account = models.ForeignKey(Account, on_delete=models.CASCADE) + + class Meta: + unique_together = (('employee', 'account'),) + db_table = "update_only_fields_employee_account" + class NonConcreteField(models.IntegerField): def db_type(self, connection): return None