python-3.x - 在mongoengine Model python中将默认值设置为Null
问题描述
from pymodm import connect, fields, MongoModel, EmbeddedMongoModel
from pymongo import IndexModel, ASCENDING, TEXT,client_session
import arrow
from sqlalchemy.log import echo_property
from sqlalchemy.orm import session, sessionmaker
# from .models import *
from scrapy.utils.project import get_project_settings
import arrow
from time import sleep
from sqlalchemy.sql.expression import null
from sqlalchemy.sql.schema import PrimaryKeyConstraint
def db_connect():
"""
Performs database connection using database settings from settings.py.
Returns sqlalchemy engine instance
"""
engine = connect("mongodb://localhost:27017/abcd")
return engine
now = arrow.get(arrow.now('America/New_York')).datetime
class Live_pr(MongoModel):
uni_identifier = fields.CharField(required=True,primary_key=True)
symbol = fields.ListField(required=True)
#...........
#..........
price_dollar = fields.FloatField(blank=True, null=True, default=None) #I want set default Null for this field
is_new = fields.IntegerField(default=1)
scrape_timestamp = fields.DateTimeField(default=now)
class Meta:
cascade = True
db_connect()
#.....
#scrapy pipeline code
#....
def process_item(self, item, spider):
prs = Live_pr()
prs.uni_identifier = item["uni_identifier"]
prs.symbol = item["symbols"]
if item["price"]:
prs.price_dollar = item["price"]
prs.save()
我只想知道是否有办法在 mongoengine 模型中将默认设置为 Null。“default=None”不起作用。它只会删除整个字段。设置“null=true”会引发这种类型错误:
文件“/home/*******/.local/lib/python3.9/site-packages/pymodm/fields.py”,第 89 行,在init super(CharField, self) 中。init (verbose_name=verbose_name, TypeError: init () got an unexpected keyword argument 'null'
解决方案
您可以像这样设置默认值:
field2 = fields.CharField(blank=True, null=True, default=None)
推荐阅读
- jenkins - 当特定的 Github 文件更改时,是否有一个插件可以触发 Jenkins 构建?
- python - Python:对象未添加到自身
- asp.net - asp.net C# GridView 运行两次。重复结果
- reactjs - 如何摆脱网站对于 api 来说是不安全的
- javascript - 使用 d3 单击时将线从一个 svg 形状连接到其他 svg 形状
- python - 是否可以在任何 Python 求解器中运行 for 循环?
- f# - 是否可以强制在另一种类型中使用可区分联合中的类型?
- typescript - 在 Typescript 中连接随机数
- c++ - int* ptr 的区别;和 int *ptr; C++ 指针
- python - 如何使用装饰器将函数的结果包装在多个外部库函数中