2

私は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')),
    )

object_id を渡す方法がわかりませんurls.py。特定の年のアクティビティ ページを表示したいと考えています。また、同じ会社の同じ年に複数の活動ページが存在する可能性があります。

このページを探すと

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

見つからないと言っています。助けてください

4

1 に答える 1

3

何らかの理由で、 の情報を見ているようです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')),
)

とは言っても、古い関数ベースのビューを実際に使用するべきではありません。それらはクラスベースのビューに置き換えられているため、「関数ベースの汎用ビュー (非推奨)」。新しいスタイルのドキュメントを参照してください。

于 2011-12-27T11:22:12.330 に答える