Django ミックスインは
「オブジェクト」を継承しますが、私の問題に対する代替ソリューションが見つかりません:(
質問をできるだけ簡単にするために、、、
ビュー.py
class JSONResponseMixin(object):
def render_to_response(self, context):
"Returns a JSON response containing 'context' as payload"
return self.get_json_response(self.convert_context_to_json(context))
def get_json_response(self, content, **httpresponse_kwargs):
"Construct an `HttpResponse` object."
return http.HttpResponse(content,
content_type='application/json',
**httpresponse_kwargs)
def convert_context_to_json(self, context):
"Convert the context dictionary into a JSON object"
# Note: This is *EXTREMELY* naive; in reality, you'll need
# to do much more complex handling to ensure that arbitrary
# objects -- such as Django model instances or querysets
# -- can be serialized as JSON.
return json.dumps(context)
class HandlingAJAXPostMixin(JSONResponseMixin):
def post(self, request, *args, **kwargs):
.....
data = {'somedata': somedata}
return JSONResponseMixin.render_json_response(data)
class UserDetailView(HandlingAJAXPostMixin, DetailView):
model = MyUser
.....
したがって、私が抱えている問題は、複数のビューの場合、同じJSON 応答
で「投稿」要求に応答したいということです
。そのため、
他のビューで再利用できるように、HandlingAJAXPostMixin を定義しました。HandlingAJAXPostMixin は JSON 応答を返すため
、JSONResponseMixin で定義されている render_json_response メソッドが必要です。
これが、HandlingAJAXPostMixin がJSONResponseMixin を
継承するようにしている理由ですが、これは明らかに間違っているようです :(..提案はありますか ..?
ありがとう!!!