Files
mayan-edms/3rd_party_apps/grappelli/views/related.py
2011-03-07 12:15:25 -04:00

52 lines
1.8 KiB
Python

# coding: utf-8
from django.http import HttpResponse
from django.db import models
def related_lookup(request):
if request.method == 'GET':
if request.GET.has_key('object_id') and request.GET.has_key('app_label') and request.GET.has_key('model_name'):
object_id = request.GET.get('object_id')
app_label = request.GET.get('app_label')
model_name = request.GET.get('model_name')
if object_id:
try:
model = models.get_model(app_label, model_name)
obj = model.objects.get(pk=object_id)
obj_text = unicode(obj)
except:
obj_text = "Not Found"
else:
obj_text = ""
else:
obj_text = "Error"
else:
obj_text = "Error"
return HttpResponse(obj_text, mimetype='text/plain; charset=utf-8')
def m2m_lookup(request):
obj_text = []
if request.method == 'GET':
if request.GET.has_key('object_id') and request.GET.has_key('app_label') and request.GET.has_key('model_name'):
object_ids = request.GET.get('object_id').split(',')
app_label = request.GET.get('app_label')
model_name = request.GET.get('model_name')
for obj_id in object_ids:
try:
model = models.get_model(app_label, model_name)
obj = model.objects.get(pk=obj_id)
obj_text.append(unicode(obj))
except:
obj_text.append("Not Found")
else:
obj_text.append("Error")
else:
obj_text.append("Error")
obj_text = ", ".join(obj_text)
return HttpResponse(obj_text, mimetype='text/plain; charset=utf-8')