Доступ к модели Django

есть две модели (пример):

class Posts(model.Model):
    pass

class Statistics(model.Model):
    post = model.ForeignKey(Post)
    count = model.IntegerField()

Есть ли такая возможность достать на пример с модели Posts значение из Statistics.count?


Ответы (1 шт):

Автор решения: nomnoms12

К одному экземпляру модели Posts может быть привязано несколько экземпляров модели Statistics, поэтому непонятно, из какой именно нужно брать информацию.

Если Вы хотите, чтобы у одной записи была только одна статистика, то используйте OneToOneField, вместо ForeignKey.

Пример:

class Post(model.Model):  # Posts -> Post
    pass


class Statistics(model.Model):
    post = model.OneToOneField(Post, on_delete=models.CASCADE)
    count = model.IntegerField()

Получить count можно так:

post.statistics.count

Если же оставить текущие модели, то получить count из первого привязанного экземпляра Statistics можно так:

post.statistics_set.first().count

P.S.: Лучше называть модели в единственном числе.

→ Ссылка