У меня есть 2 модели Owners
, Relationships
Владельцы
class Owner(models.Model):
id = models.BigAutoField(primary_key=True)
nickname = models.CharField(max_length=20, unique=True)
Отношения
class Relationships(models.Model):
id = models.BigAutoField(primary_key=True)
owner = models.ForeignKey(Owner, on_delete=models.CASCADE, related_name='relationship_owner')
target_owner = models.ForeignKey(Owner, on_delete=models.CASCADE, related_name='relationship_target_owner')
Чтобы добавить строки к Relationships
, я использовал запрос ниже.
owner1 = Owner.objects.filter(nickname='hide').first()
owner2 = Owner.objects.filter(nickname='john').first()
Relationships.objects.create(owner=owner1, target_owner=owner2)
Это довольно ясно.Но когда я проверяю django-debug-toolbar
, он обращается к базе данных 3 раза.
Получить nickname=hide
из таблицы владельцев.
Получить nickname=john
из таблицы владельцев.
Вставить в hide
и john
в таблицу отношений.
Интересно, этообщий способ?
Или, есть ли какой-либо четкий способ выполнения вышеуказанного запроса?
Спасибо!