我的一个模型中有一个通用外键:
# 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 正在运行,但它没有返回与目标字段相关的对象。 我该怎么做?
请您参考如下方法:
我在使用 JSON 和通用 key 时遇到了严重的问题,这是我用来解决问题的方法。我首先列出了我需要的东西,例如:
some_list = [some.pk,some.CONTENT_OBJECT.name] for some in GenericModel.objects.all()]
然后,使用在 django.utils 中找到的简单 json 转储数据
data = simplejson.dumps(some_list)
然后将数据返回给模板
return HttpResponse(data, mimetype='aplication/json')
希望对您有所帮助。
