【问题标题】:Saving a vector in Django Sqlite3在 Django Sqlite3 中保存矢量
【发布时间】:2020-03-31 02:06:03
【问题描述】:

我正在尝试使用以下模型字段在 Sqlite3 中使用 Django 存储向量

vector = models.CharField(validators=[int_list_validator(sep=' ', allow_negative=True)], max_length=256)

以及对应的序列化器字段

vector = serializers.CharField()

在保存实例之前,向量的形状为 (1,128),在从数据库中检索时,它不是所需的形状。

这是保存向量的正确方法还是存在替代解决方案?

感谢您的帮助!

【问题讨论】:

标签: python django sqlite django-rest-framework


【解决方案1】:

使用 TextField 代替有长度限制的 CharField,或者您可以使用 BinaryField

【讨论】:

  • 我应该为 BinaryField 使用什么序列化器?
  • 你应该建立你自己的二进制字段,然后你可以使用to_representation从你的数据库中解码数据,to_internal_value在保存到数据库之前对数据进行编码,django-rest-framework.org/api-guide/fields/#custom-fields
【解决方案2】:

如果您的数据不是太大,您也可以使用 JSON 字段。

from django.db import models

def empty_list(): return []
value = models.JSONField(default=empty_list, blank=True, null=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-02
    • 2012-05-23
    • 2014-01-26
    • 1970-01-01
    • 2013-04-09
    • 2021-08-04
    • 2019-01-19
    • 2013-12-09
    相关资源
    最近更新 更多