1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #33582 -- Fixed deserializing natural keys with foreing key dependencies in a multiple database setup.

This commit is contained in:
François Granade
2022-03-18 11:17:54 +01:00
committed by Mariusz Felisiak
parent ed6db53542
commit 4b8e4f5060
4 changed files with 58 additions and 1 deletions

View File

@@ -147,6 +147,26 @@ class Book(models.Model):
)
class NaturalKeyWithFKDependencyManager(models.Manager):
def get_by_natural_key(self, name, author):
return self.get(name=name, author__name=author)
class NaturalKeyWithFKDependency(models.Model):
name = models.CharField(max_length=255)
author = models.ForeignKey(Person, models.CASCADE)
objects = NaturalKeyWithFKDependencyManager()
class Meta:
unique_together = ["name", "author"]
def natural_key(self):
return (self.name,) + self.author.natural_key()
natural_key.dependencies = ["fixtures_regress.Person"]
class NKManager(models.Manager):
def get_by_natural_key(self, data):
return self.get(data=data)