0

У меня проблемы с CBW с Django 1.8. Я использую CBW, и, если возможно, я бы вообще не хотел использовать представления. Но я застреваю в попытке заказать результаты, которые у меня есть с запросами по умолчанию.Django order_with_respect_to reverse foreign_key

так, более подробная информация и пример: работа на Джанго 1.8.3

Есть несколько моделей, групп, которые могут пойти на гастроли событий в разных местах

MyApp/models.py>

from django.db import models 

class Band(models.Model): 
    name = models.CharField(max_length=512) 

class Venue(models.Model): 
    name = models.CharField(max_length=512) 
    class Meta: 
    order_with_respect_to = 'VenueEvents' 

class Event(models.Model): 
    datetime = models.DateTimeField() 
    name = models.CharField(max_length=512) 
    venue = models.ForeignKey(Venue, trough='VenueEvents') 
    band = models.ForeignKey(Band) 
    class Meta: 
    ordering ['venue', 'datetime'] 

MyApp/view.py>

#Empty 

MyApp/url.py>

from django.conf.urls import url, patterns 
from django.views.generic import DetailView 
from myapp.models import Band 

urlpatterns = patterns('', 
    url(r'^bands/(?P<pk>[\d]+)$', DetailView.as_view(model=Band), name='venue') 

, а затем файл шаблона непосредственно:

шаблон/MyApp/venue_detail.html>

<html><body><ul><li> 
{{ band.name }} 
{% for event in band.event_set.all %} 
    {% ifchanged event.venue %} 
    {% if not forloop.first %} 
     </li><li> 
    {% endif %} 
    {{ event.datetime }} 
    {% endif %} 
    {{ event.name }} 
{% endfor %} 
</li></ul></body></html> 

Я хочу на этой странице, чтобы все места группа гастролировала в списке, и Я хочу, чтобы они были заказаны event_set.datetime. Значение первого места в списке - это место, где они в последний раз играли.

Я tryied несколько разных вещей, все не работает:

  • добавления через параметров в ForeignKey. не работает
  • пытается придерживаться логики в шаблоне. не работает (и кто бы это?)
  • имея в Место проведения: упорядочивание [ «event_set»]

Так что, я бы очень хотел иметь решение без view.py, но только если возможно. Итак, какова была бы лучшая идея решить эту проблему?

  • Возможно, есть простой способ добавить новый стол, чтобы помочь мне заказать эти вещи?
  • Может быть, я могу добавить метод в мой класс, который примет группу в качестве аргумента, и я бы мог заказать ее, за исключением того, что django не позволяет заказывать вещи методом.
  • Возможно, мне нужно переопределить диспетчер объектов, чтобы добавить эту возможность, но есть ли простой способ сделать это?
  • Или это единственное решение, позволяющее пропустить просмотр без CBW?
  • Или есть ли другие решения?
+1

Изменить порядок на Событии, чтобы иметь дату и время. – Ben

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^