Django аннотировать с 'полем' из 'related_name' из 'related_name' - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть три модели: Domain Topic Post

Topic имеет foreign key до Domain и Post имеет foreign key до Topic.

Post имеет поле updated_on.

Я хочу аннотировать last_updated поле в Domain наборе запросов, которое будет содержать последний объект сообщения из Post.

Редактировать 1: добавлено определение модели:

class Board(models.Model):
    name = models.CharField(max_length=30, unique=True)
    description = models.CharField(max_length=50)
    creation_time = models.DateTimeField(auto_now_add=True)

class Topic(models.Model):
    subject = models.CharField(max_length=300, unique=True)
    board = models.ForeignKey(Board, on_delete=models.SET_NULL, related_name='topics', null=True)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='topics', null=True)
    created_on = models.DateTimeField(auto_now_add=True)    
    views = models.PositiveIntegerField(default=0)

class Post(models.Model):
    message = models.CharField(max_length=5000)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='posts', null=True)
    created_on = models.DateTimeField(auto_now_add=True)
    topic = models.ForeignKey(Topic, on_delete=models.SET_NULL, related_name='posts', null=True)
    updated_on = models.DateTimeField(default=timezone.now)
...