Как проверить, есть ли у экземпляра подкласс с ForeignKey, указывающим на него в Django? - PullRequest
0 голосов
/ 18 января 2020

Я новичок с Django, и я хотел бы знать, имеет ли экземпляр Market, над которым я работаю, хотя бы объект класса Candle, указывающий на него. Как вы можете видеть в моем коде, соотношение между Market и Candle имеет null=True, поэтому оно необязательно.

Как я могу выполнить эту проверку?

models.py:

class Market(models.Model):
    pair = models.CharField(max_length=12, null=True)
    def __str__(self):
        return str(self.pair)

class Candle(models.Model):
    market = models.ForeignKey(Market,
                               on_delete=models.CASCADE,
                               related_name='market',
                               null= True
                               )
    dt = models.DateTimeField(unique=True)
    def __str__(self):
        return str(self.dt.strftime("%Y-%m-%d %H:%M:%S")) 

Я пробовал много вещей, но каждый раз выдает ошибку.

if instance.Candle().exists():
    ...
if Candle(market=instance).exists():
    ...

Спасибо

1 Ответ

1 голос
/ 18 января 2020

Поскольку вы используете related_nam=market, вы можете использовать market атрибут Market экземпляра для доступа к связанным свечам:

instance.market.exists() // instance - market instance

Или используя модель свечи:

Candle.objects.filter(market=instance).exists()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...