Симметричная связь между двумя объектами в Django
У меня есть модель со всей информацией о растении и другая модель, которая состоит из создания связей между этими растениями. Но когда я создаю связь между двумя растениями, например, я создаю идеальную связь между базиликом и чесноком в админке Django, у меня нет симметричной связи между чесноком и базиликом. Нужно ли добавить symmetrical = true в модель?
Вот модель растения :
Вот ассоциированная модель растения :
from django.db import models
from apps.perma_plants.models import Plant
class LnkPlantPlant(models.Model):
class MAGNET_CHOICES(models.TextChoices):
NONE = None
IDEAL = 'ideal',
GOOD = 'good',
MEDIOCRE = 'mediocre',
BAD = 'bad'
plant = models.ManyToManyField('perma_plants.Plant', related_name='%(class)s_plant')
plant_associated = models.ManyToManyField('perma_plants.Plant', related_name='%(class)s_plant_associated')
link = models.CharField(max_length=10, choices=MAGNET_CHOICES.choices, default=MAGNET_CHOICES.NONE, blank=True, null=True)
description = models.CharField(max_length=255, blank=True, null=True)
Спасибо
Согласно ответу Джеффа , это можно сделать вручную:
# using Model.object.create is a shortcut to instantiating, then calling save()
linkplt = LnkPlantPlant.objects.create(link='something', description='something')
garlic = Plant.objects.create(name='garlic')
basil = Plant.objects.create(name='basil')
linkplt.plant.add(garlic)
linkplt.plant_associated.add(basil)
linkplt.plant.add(basil)
linkplt.plant_associated.add(garlic)