だから、私はブログ記事を含む小さなブログアプリ(ここではdjango初心者)を持っており、これらの各項目に「評価」を含めようとしています(stackoflowのアップ/ダウンに似ています)。だから、私が持っているのは ListView の ajax ベースの GET ですが、この評価データを「変更」するには POST が必要であることに気付きました。django ListView からデータを投稿しようとしましたが、これを行う方法がわかりません。すべてのブログ記事 (ページ付けされた) のリストビューである現在の GET コードは次のようになります。
#views.py
class AwesomeDisplayListView(JSONResponseMixin,ListView):
model = blogposts
template_name = "awesome_list.html"
paginate_by = '15'
context_object_name = "searchres"
def get_context_data(self, **kwargs):
print "this is get_context_data"
context = super(SearchDisplayListView, self).get_context_data(**kwargs)
q = self.request.GET.get('q')
context['searchq'] = q
return context
def get_queryset(self):
print "this is get_queryset"
# get some queryset
return queryset
def render_to_response(self, context):
if self.request.is_ajax():
obj = {'name':'ajax', 'birthday':'may'}
return JSONResponseMixin.render_to_response(self, obj)
else:
return ListView.render_to_response(self, context)
上記のコードは、テンプレートにデータ (「obj」) を取得するのにうまく機能し、ブログ投稿と GET ajax の両方をレンダリングできますが、次のようにデータを投稿したいと考えています: [1] 評価は現在の値から 1 増加 [2] 特定のアクション (クリックして投票) には、login_required が必要です。
誰かがこれを行うために正しい方向に私を向けることができるかどうか疑問に思っていました. 私は問題をグーグルで検索しましたが、Mixins を組み合わせることを提案しているようですが、これが当てはまるかどうかはわかりません。
ありがとう。