2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Группировка таблицы по внешнему ключу. Django.
Сообщение04.04.2020, 23:49 


21/02/19
108
Здравствуйте. Подскажите, как в django произвести группировку таблицы по внешним ключам так, чтобы в этих полях остались ссылки на внешнюю таблицу?
Есть модель сообщений:
Используется синтаксис Python
class Message(models.Model):
    id = models.AutoField(auto_created=True,primary_key=True)
    sender_id = models.ForeignKey(MyUser, on_delete=models.CASCADE, related_name="message_sender_id")
    receiver_id = models.ForeignKey(MyUser, on_delete=models.CASCADE, related_name="message_receiver_id")
    number = models.PositiveIntegerField(default=0)
    text = models.TextField(max_length=500,default="")
    sending_time = models.DateTimeField(auto_now_add=True)
 

Группирую её по полям sender_id, receiver_id, но при группировке они принимают значения primary_key из таблицы MyUser. Мне же надо, чтобы осталась возможность для объектов Message, отобранных по queryset, обращаться напрямую к полям модели MyUser.
Сам запрос:
Используется синтаксис Python
dialogs_list = Message.objects.filter(Q(receiver_id=request.user.id)
    |Q(sender_id=request.user.id)).values('receiver_id','sender_id','text').annotate(
        sending_time=Max('sending_time')).order_by('sending_time')
 

Т.е. надо, чтобы работало в шаблоне:
Используется синтаксис Python
{% for dialog in dialogs_list %}
    {{dialog.sender_id.user}}
{% endfor %}
 

где user - одно из полей таблицы MyUser.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Karan, maxal, Toucan, PAV, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group