Общее представление деталей Django и ограничивающие объекты

#django #templates #models

#django #шаблоны #Модели

Вопрос:

Вот мои urls.py , шаблон и модель. Я хочу знать, как я могу ограничить количество отображаемых записей поля.

Urls.py

 a_detail = {
    'queryset': A.objects.all(),
    'template_object_name' : "b",
    'slug_field': 'a',
    'template_name': 'a/detail.html',
}

urlpatterns = patterns('',
    (r'^detail/(?P<slug>[a-zA-Z0-9_.-] )/$', list_detail.object_detail, a_detail),
)
  

в моем шаблоне:

 {% for log in b.logs.all %}
     <tr>
         <td>{{ log.timestamp }}</td>
         <td>{{ log.message }}</td>
     </tr>

 {% empty %}
      <tr>
         <td>Kein Timestamp vorhanden</td>
         <td>Keine Log Message vorhanden</td>
      </tr>
 {% endfor %}
  

Мои модели:

 class A(models.Model):
    logs = models.ManyToManyField(Log, through='Timestamps', editable=False)

Class Log(models.Model):
    message = models.TextField()
    timestamp = models.DateTimeField(auto_now=True) 
  

Возможно ли отображать только 20 последних сообщений журнала?

Ответ №1:

Вы можете установить ограничение запроса следующим образом:

 Model.objects.all()[X:Y]
  

Или вы можете использовать разбиение на страницы в своем классе ListView

 paginate_by = X