2010-08-24 42 views
2

我在我的模型中的一個通用外鍵:的Django,阿賈克斯+通用外鍵

# models.py 
class Tasks(models.Model): 
    content_type = models.ForeignKey(ContentType, limit_choices_to=tasktype_limits, null=True, blank=True) 
    object_id = models.PositiveIntegerField(null=True, blank=True,) 
    target = generic.GenericForeignKey('content_type', 'object_id') 
    ttype = models.ForeignKey('TaskType') 
    status = models.CharField(max_length = 60, null=False, blank=False) 
    comments = models.TextField(null=True, blank=True,) 

現在,我想獲取所有的任務和它的「目標」與AJAX:

# views.py 
def get_tasks(request, task_id): 
    tasks = Tasks.objects.all() 
    return HttpResponse(serializers.serialize('json', tasks))` 

Ajax-Call目前工作正常,但不會返回與目標字段相關的對象。 我該怎麼做?

回答

0

不確定這是否相關,但是報告有關contenttypes(#7052;請參閱相關discussion)的序列化的錯誤。我相信它已經在Django 1.2中修復了。你使用的是哪個版本的Django?

+0

我正在使用Django 1.2.1 – user429304 2010-08-24 09:40:16

1

我有嚴重的問題使用JSON和通用密鑰,這是我用來解決我的問題的方法。我第一次做的事情的清單,我需要,例如:

some_list = [some.pk,some.CONTENT_OBJECT.name] for some in GenericModel.objects.all()] 

然後,轉儲,簡單的JSON在django.utils

data = simplejson.dumps(some_list) 

發現的數據,然後將數據返回到模板

return HttpResponse(data, mimetype='aplication/json') 

希望它有幫助。