У меня есть две модели в Django, которые я получаю JSon выходы из:Как объединить этих двух Jsons?
модели (упрощенный)
class ServiceSubCategory(models.Model):
service_category = models.ForeignKey(ServiceCategory)
name_fa = models.CharField(default='', max_length=200)
name_en = models.CharField(default='', max_length=200)
def __unicode__(self):
return self.service_category.name_fa+' -> '+ self.name_fa
class Service(models.Model):
service_sub_category = models.ForeignKey(ServiceSubCategory)
img_fa = models.ImageField(default='img/default_service.png',upload_to='img/service/')
caption_fa = models.CharField(default='',max_length=200)
caption_en = models.CharField(default='',max_length=200)
def as_json(self):
return {
'id': self.id,
'caption_fa': self.caption_fa,
'caption_en': self.caption_en,
'img_fa': unicode(self.img_fa),
}
Я хочу, чтобы получить первые модели первичных ключей и объединить его с JSON Я получаю от второй модели:
Я получаю JSON от ServiceSubCategory:
[1,2,3,4,5,6,7,8,9,10]
Запустив этот код:
idJson=json.dumps(list(ServiceSubCategory.objects.values_list('id',flat=True)))
и получить этот JSon:
[{"caption_fa": "some value", "caption_en": "something", "id": 2, "img_fa": "img/default_service.png"},
{"caption_fa": "somthing", "caption_en": "somthing", "id": 1, "img_fa": "img/service/IMAG0099_1H3sdjX.jpg"}]
К этому
cat = ServiceSubCategory.objects.get(id=1)
dictionary=[obj.as_json() for obj in Service.objects.filter(service_sub_category=cat)]
То, что я хочу, чтобы объединить эти два JSons, чтобы получить что-то вроде этого:
[["1":{"caption_fa": "some value", "caption_en": "something", "id": 2, "img_fa": "img/default_service.png"},
{"caption_fa": "somthing", "caption_en": "somthing", "id": 1, "img_fa": "img/service/IMAG0099_1H3sdjX.jpg"}],
["2":{"caption_fa": "some value", "caption_en": "something", "id": 3, "img_fa": "img/default_service.png"},
{"caption_fa": "somthing", "caption_en": "somthing", "id": 4, "img_fa": "img/service/IMAG0099_1H3sdjX.jpg"}]]
Это, как я пытаюсь сделать это:
def service(request):
idList=ServiceSubCategory.objects.values_list('id',flat=True)
idJson=json.dumps(list(ServiceSubCategory.objects.values_list('id',flat=True)))
for i in idList:
dictionary=[obj.as_json() for obj in Service.objects.filter(service_sub_category=i)]
idJson[i].append(dictionary) #Error
return HttpResponse(idJson, content_type='application/json')
И я получаю сообщение об ошибке в idJson[i].append(dictionary)
: объект
'' STR не имеет атрибута 'добавляемых'
Я действительно не знаю, как мне это сделать. Любая помощь будет оценена по достоинству.
, какой бы результат вы не напечатали здесь, это незаконный в python. просто скопируйте его в оболочку python по вашему выбору, и вы увидите – bmbigbang
@bmbigbang. Я протестировал его и получил свой ответ. –