Я пытаюсь передать объекты JSON в мой шаблон.У меня есть сложные отношения, которые я не могу изменить.На основании сообщений ОС я пробовал разные вещи.Те, что, как мне кажется, приблизили меня:
Я создал набор запросов .values (), который выглядит следующим образом:
def my_queryset():
results=TodaysResults.objects.values('id','foreignModel1__name',
'foreignModel1__ForeignModel2__title')
print (myquery_set)
my_queryset дает мне все необходимые мне значения.Поэтому я попытался преобразовать его, используя методы ниже.1)
def make_querydict():
results=TodaysResults.objects.values('id','foreignModel1__name',
'foreignModel1__ForeignModel2__title')
json_results=json.dumps(list(results,cls=DjangoJSONEncoder))
print (json_results)
Я получаю следующую ошибку:
"Ошибка типа: list () не принимает аргументов ключевого слова"
2) Я пыталсяэто также:
def serialize():
fields = ['id','foreignModel1__name','foreignModel1__ForeignModel2__title']
qs = TodaysResults.objects.all()
json_data = serializers.serialize('json',qs,fields=fields)
print(json_data)
Но когда я печатаю, json_data показывает только id, а не внешние значения.
3) На основе нескольких ответов , подобных этому (с 2012 г.), которые были в том же духе, и я попытался:
def for_JSON_response():
response=JsonResponse(dict(results_info=list(TodaysResultslts.objects.values('id','foreignModel1__name',
'foreignModel1__ForeignModel2__title')
print(response)
Я не получил ни одногоошибки, но он ничего не печатает. Итак, я предполагаю, что ничего не произошло.
4) На основе это Я пытался:
def my_queryset():
results=TodaysResults.objects.values('id','foreignModel1__name',
'foreignModel1__ForeignModel2__title')
print (JsonResponse(results, safe=False))
Я получаю:
TypeError: Объект типа QuerySet не является JSONserializable
И я попробовал:
def my_queryset():
results=TodaysResults.objects.values('id','foreignModel1__name',
'foreignModel1__ForeignModel2__title')
results_json = serializers.serialize('json',results)
И я получил:
AttributeError: у объекта 'dict' нет атрибута '_meta'
Я много раз осматривался, и некоторые ответы выглядят устаревшими.Мои попытки, описанные выше, являются, как мне кажется, самыми близкими к преобразованию набора значений в json или получению необходимых значений в JSON.Есть ли способ сделать цепочечный запрос, подобный тому, который у меня есть в my_queryset, и преобразовать его в JSON?
Models.Py Упрощенно для этого примера
class TodaysResults(models.Model):
place = models.CharField(max_length=255)
ForeignModel1 = models.ForeignKey(ForeignModel,related_name='m1')
class ForeignModel(models.Model):
name = Models.CharField(max_length=255)
ForeignModel2 = models.ManyToManyField(M2M, related_name='m2')
class M2M(models.Model):
title = Models.CharField(max_length=255)