Python/Django:如何用导入的JSON文件的值填充模型表单字段?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (233)

我有一个模型表单,它将所有表单字段输入作为一个条目保存到后端数据库。我还有一个JSON文件,它包含多个JSON对象,其字段对应于模型表单字段。这个JSON文件是通过模型中的FileField上传的。最终,我希望能够将带有多个JSON对象的JSON文件上载到我的模型表单中,并使用上传的JSON文件中的相应值填充字段。每个JSON对象将是我的数据库的一个条目,它们至少可以有一个字段的空值。理想情况下,我希望能够选择将哪个JSON对象(从上传的JSON文件中)加载到我的模型表单字段中,以便最终保存到我的数据库中。我将如何实现这一点?

提问于
用户回答回答于

你可以使用Django REST框架,它将提供POST函数和序列化程序。

你最终会得到这样的东西:

# the model
class Book(Model):
    title = TextField()
    author = TextField()

# the serializer
class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'

# the view
class BookView(generics.ListCreateApiView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

然后,你可以将数据发布到数据库。

data = [{'title': 'Moby Dick', 'author': 'Herman Melville'},
    {'title': 'A Game of Thrones', 'author': 'George R. R. Martin'}]
for d in data:
    r = requests.post('django_api_url/book/', d)
    r.raise_for_status()
    # the new record is returned if successful
    print(r.json())

扫码关注云+社区

领取腾讯云代金券