Как упорядочить поле «многие ко многим» в шаблоне? - PullRequest
0 голосов
/ 17 апреля 2020

Когда я пытаюсь визуализировать множество объектов в шаблоне. Мой models.py:

class Class(models.Model):
    id = models.CharField(max_length=8, primary_key=True)
    name = models.CharField(max_length=255)
    members = models.ManyToManyField(User, related_name='member')
    texts = models.ManyToManyField(Messages)

class Messages(models.Model):
    user = models.ForeignKey(User, on_delete=models.DO_NOTHING)
    id = models.CharField(max_length=8, primary_key=True)
    messages = models.TextField(blank=False, null=False)
    time = models.DateTimeField(auto_now_add=True)

Я отобразил это в моем шаблоне:

    {% for text in class.texts.all %}
    <div class="card col-md-4 w-75 l-balloon mb-2">
        {{text.messages|linebreaks}}
        <span class="font-small d-block ml-auto mr-3">{{text.time}}</span>
    </div>
    {% endfor %}

И это то, что я использовал в своем views.py:

context = {
    "class": Class.objects.get(id=pk)
}

Здесь я просто передаю один объект класса, в котором я хочу отобразить тексты связанного класса. При рендеринге {{text.messages|linebreaks}} он упорядочен по значениям атрибута messages класса Message. Я хочу, чтобы это было упорядочено по атрибуту time. Как я могу заболеть?

1 Ответ

0 голосов
/ 17 апреля 2020

вы можете определить мета-класс для вашей модели и использовать «Порядок». class Meta: ordering = ['time']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...