У меня есть конечная точка API и проблема с нахождением предмета из вложенного json ...
Я пишу такой тест и печатаю, какие данные он мне показывает:
class TestSingleArticle(TestCase):
def setUp(self):
article = ArticleFactory2.create()
self.url = reverse('article-single2', args=[article.alias])
def test_single_article_get(self):
request = self.client.get(self.url)
print(request.data)
Когда я запускаю это, я вижу следующее json в terminal
{
'alias': '508674f2-b570-47f1-b1d8-01592a3af359',
'author': OrderedDict([('id', 1), ('organization', OrderedDict([('id', 1), ('organization_name', 'org name'), ('contact', '256644')])), ('name', 'jhon doe'), ('detail', 'this is detail')]),
'category': OrderedDict([('id', 1), ('name', 'sci-fi')]),
'title': 'i am title',
'body': 'i am body'
}
Я пытаюсь схватить contact
сверху json
но мне не удалось ....
Если вы не понимаете вышеприведенное утверждение, см. Этот дополнительный совет для вас.
Это мой класс сериализации:
from rest_framework import serializes
from . models import Author, Article, Category, Organization
class OrganizationSerializer(serializers.ModelSerializer):
class Meta:
model = Organization
fields = '__all__'
class AuthorSerializer(serializers.ModelSerializer):
organization = OrganizationSerializer():
class Meta:
model = Author
fields = '__all__'
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = '__all__'
class ArticleSerializer(serializers.ModelSerializer):
author = AuthorSerializer()
category = CategorySerializer()
class Meta:
model = Article
fields = '__all__'
и ниже мои модели:
from django.db import models
import uuid
class Organization(models.Model):
organization_name = models.CharField(max_length=50)
contact = models.CharField(max_length=12, unique=True)
def __str__(self):
return self.organization_name
class Author(models.Model):
name = models.CharField(max_length=40)
detail = models.TextField()
organization = models.ForeignKey(Organization, on_delete=models.DO_NOTHING)
def __str__(self):
return self.name
class Category(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Article(models.Model):
alias = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='author')
title = models.CharField(max_length=200)
body = models.TextField()
category = models.ForeignKey(Category, on_delete=models.CASCADE)
В любом случае, я хочу получить contact
от вложенного json, кто-нибудь может мне помочь в этом случае?