Как использовать общие представления на основе даты django - PullRequest
2 голосов
/ 27 декабря 2011

Я пытался django date based generic views, но не удалось.Документация не дает примеров, поэтому я не очень хорошо их понял.В этом учебном пособии здесь показано, как использовать универсальные представления для модели, которая имеет slug field.

В документации сказано:

Either object_id or (slug and slug_field) is required.

Но я не понял, как на самом делесделать это.Мой models.py содержит

class CompanyActivity(models.Model):
    company = models.CharField(max_length=300)
    desc = models.TextField()
    text = models.TextField()
    date = models.DateTimeField()
    activity_type = models.CharField(max_length=600)

, а мой urls.py содержит

info_dict = {
    'queryset': CompanyActivity.objects.all(),
    'date_field': 'date',
}

    urlpatterns+= patterns('django.views.generic.date_based',
        url(r'^activity/(?P<year>d{4})/(?P<object_id>\d+)/$','object_detail', dict(info_dict,object_id='id',template_name='activity/detail.html')),
    )

Я знаю, что что-то не так в urls.py Я не знаю, как передать object_id,я собираюсь показать страницу активности за определенный год.И несколько страниц активности могут быть для одной и той же компании за один и тот же год.

Когда я ищу эту страницу

http://127.0.0.1:8000/activity/2011/1

Там написано, что не найдено.Пожалуйста, помогите

1 Ответ

3 голосов
/ 27 декабря 2011

По какой-то причине вы, похоже, просматриваете информацию для object_detail. Как следует из названия, это относится к детализации конкретного объекта (на основе даты), поэтому не относится к вашей проблеме, а именно к тому, как получить список действий за определенный год. Опять же неудивительно, что функция, которую вы ищете: archive_year:

urlpatterns+= patterns('django.views.generic.date_based',
    url(r'^activity/(?P<year>d{4})/$','archive_year',
        dict(info_dict, template_name='activity/detail.html')),
)

Тем не менее, вам вообще не следует использовать старые представления на основе функций - они были заменены на представления на основе классов, поэтому они доступны только по ссылке с надписью «На основе функций». общие взгляды (устарело) ". См. документацию о новом стиле.

...