2013-06-20 2 views
2

У меня есть представление Django, которое я хотел бы использовать, а не копировать и вставлять, который загружает и проверяет перед выполнением некоторой пользовательской логики.Django: Написание общих вариантов просмотра

Я оценки три метода, чтобы сделать этот вид многоразовый:

  1. декоратора (Не Djangoish)
  2. Generic Посмотреть метод (Исследуя)
  3. Class Based Generic View (Немного излишества)

Что вы посоветуете и почему?

Я предоставил фрагмент ниже точки зрения:

try: 
    data = json.loads(request.body) 
except: 
    resp = generate_json_response(False, 'validation', 'JSON data cannot be parsed. Please check your data format.') 
    return HttpResponse(resp, mimetype="application/json") 

# Validation 
location = data.get('location', None) 
if location: 
    {custom logic} 

else: 
    # No Location 
    resp = generate_json_response(False, 'validation', 'Missing location id') 
    return HttpResponse(resp, mimetype="application/json") 

resp = generate_json_response(True, None, None) 
return HttpResponse(json.dumps(resp), mimetype="application/json") 

ответ

1

ли вы думаете о использовать Class Based Generic View с Mixins? Нечто подобное:

class JSONResponseMixin(object): 
    def render_to_response(self, context): 
     return self.get_json_response(json.dumps(context)) 

    def get_json_response(self, content, **httpresponse_kwargs): 
     return http.HttpResponse(content, 
        content_type='application/json', 
        **httpresponse_kwargs) 


class MyView(JSONResponseMixin, SomeView(BaseDetail, BaseUpdate etc..)): 
    pass 

Может быть, было бы лучше использовать некоторые реализации JSON-RPC для ваших целей. Посмотрите:

http://json-rpc.org/

http://www.jsonrpc.org/specification

http://en.wikipedia.org/wiki/JSON-RPC#Implementations

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

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