我目前正在尝试将新的Django rest API连接到我现有的mongodb数据库。当前,我正在尝试将数据库对象的结构复制为模型。我遇到了一个问题,就是我在数据库中建立了这样的结构:
{
objects: { DE: [], US: [] }
}
此处的DE和US属性可以是任何值(与此有关的任何地理位置)。有什么办法可以将这种模式纳入djongo模型中?
答案 0 :(得分:0)
如果您确实是指任何内容(或至少几种类型的数据),则可以按以下方式建立模型:
from djongo import models
...
ObjectDataModel(models.Model):
US = models.ListField()
DE = models.ListField()
class Meta:
abstract = True # Stops a database table from being made
...
YourModel(models.Model):
objects = models.ArrayModelField(model_container=ObjectDataModel)
如果您希望ListFields不只是在阳光下晒太阳,还可以添加自定义验证。 here's how to do that。
注意:这使得objects
字段通过Django Admin网站完全无法访问;这仅仅是因为管理站点无法代表ListField可以为用户处理的所有可能的输入类型(不过,您仍然可以通过表单/视图向该字段提交值)。
如果有时间,您还可以设计一个自定义字段。我(非常)不太熟悉geo
字段,因此我将向您指出here,以获取有关如何进行此操作的说明。您可能还想看看Djongo的作者如何实现前面提到的ListField
;它可能会提示如何制作类似列表的数据库条目。 Here's the raw code for that。
希望这会有所帮助!