我需要将JSON数据转换为Django模型。
这是我的JSON数据
{ "data": [ { "id": "20ad5d9c-b32e-4599-8866-a3aaa5ac77de", "name": "name_1" }, { "id": "7b6d76cc-86cd-40f8-be90-af6ced7fec44", "name": "name_2" }, { "id": "b8843b1a-9eb0-499f-ba64-25e436f04c4b", "name": "name_3" } ] }
这是我的django方法
def get_titles(): url = 'http://localhost:8080/titles/' r = requests.get(url) titles = r.json() print(titles['data'])
我需要的是转换为模型并传递给模板。请让我知道如何将JSON转换为Model。
你不会 有 在Django模板的JSON结构(Python的类型的字典)的工作就好了:到JSON结构转换成一个Django模型只是使用它在Django模板
例如,如果您将{'titles': titles['data']}上下文作为模板传递,则可以将其用作:
{'titles': titles['data']}
{% for title in titles %} ID is {{title.id}}, and name is {{title.name}} {% endfor %}
只要您不需要使用Django存储数据,上述解决方案就可以正常工作。如果要存储,请阅读以下内容。
您可以创建一个模型来存储JSON数据。一旦存储,就可以将queryset传递给模板
class Title(models.Model) id = models.CharField(max_length=36) name = models.CharField(max_length=255)
或使用 UUIDField
UUIDField
class Title(models.Model) id = models.UUIDField(primary_key=True) name = models.CharField(max_length=255)
将数据存储在Django模型中
# Read the JSON titles = r.json() # Create a Django model object for each object in the JSON for title in titles['data']: Title.objects.create(id=title['id'], name=title['name'])
使用存储的数据作为模板上下文传递
# Then pass this dict below as the template context context = {'titles': Title.objects.all()}