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 сообщение ] 

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



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

Сейчас этот форум просматривают: Dmitriy40


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

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