#python #django #django-models #many-to-many #manytomanyfield
#python #django #django-модели #многие ко многим #manytomanyfield
Вопрос:
Я работаю с моделями из разных приложений в Django.
У меня есть два приложения. Один называется partners и другие контракты.
В партнерах приложения, внутри файла models.py , я определил эту модель:
class Partner(models.Model):
cpf = models.CharField(max_length=11, null=False, blank=True)
В контрактах приложения, внутри файла models.py , я определил эту модель:
from partners.models import Partner
class Contract(models.Model):
...
indications = models.ManyToManyField(Partner, through='ContractIndication', related_name='indications')
class ContractIndication(models.Model):
contract = models.ForeignKey(Contract, on_delete=models.CASCADE)
partner = models.ForeignKey(Partner, on_delete=models.CASCADE)
payed = models.CharField(max_length=1, choices=YES_NO, null=False, blank=True, default='N')
Однако в файле views.py из приложения partners я не могу получить доступ ко всем контрактам, с которыми связан партнер, используя это:
partner = Partner.objects.get(...)
indications = partner.indications.all()
Я уже использую атрибут related_name из контракта. Что я делаю не так?
Комментарии:
1. Вы создали и запустили все свои миграции? Работает ли это, если вы используете
partner.contrato_set.all()
?2. Да, это работает, используя ваше предложение. Но почему это не работает с использованием related_name?