問題タブ [flask-mongoengine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - フラスコ モンゴエンジン: 選択フィールドを生成して、モデルの継承をフォームに公開します
このモデルがあるとします:
このモデルのインスタンスを編集するためのフォームを作成したいと思います。このフォームには、子クラスを選択するための選択フィールドがあります。
タイプ フィールドの追加
私がしたことは、タイプフィールドを追加することです:
このフィールドは、追加された属性 MongoEnginescen_type
に型情報が既に含まれているため、冗長です。_cls
既存の _cls 要素の使用
field_dict
また、返された by にmodel_fields
は要素があることに気付きましたが、その_cls
使用方法がわかりません。
ではfield_dict
、すべてのフィールドが<UnboundField...>
_cls
のようなものです<UnboundField(TextAreaField, (), {'default': None, 'description': '', 'validators': [<wtforms.validators.Optional object at 0x7fe3c983cb00>], 'label': '_cls', 'filters': []})>
しかし、フォームをインスタンス化すると、name
「バインド」(推測)form.name
され、予想される html が返されます_cls
が、まだバインドされていません。
これらの方法のいずれかが「推奨」されていますか?
型フィールド メソッドはこれまで機能していましたが、埋め込みドキュメントで継承を操作すると複雑になり、頭痛の種ではないにしても、いくつかの作業を節約できるフラスコ モンゴエンジン機能が不足している可能性があると感じています。
あるいは、このフラスコと mongoengine の wtforms の統合に期待しすぎているので、手作業で多くの作業を行う必要があります。
意味があれば、flask-mongoengine を微調整して変更を送信してもかまいませんが、正しい軌道に乗っていることを確認するために少しフィードバックをいただければ幸いです。
_cls
補助的な質問:形式でこれに使用されるべきではないと仮定すると、それは何のためにここにあるのですか? たまたまモデルにあるが、そこで使用することを意図していないため、フォームになりますか? フォームインスタンスで使用できますか?
python - 変更を伴う Mongoengine カスタム検証
以下に示すように、Mongoengine の変更操作にカスタム検証を適用しようとしています。
ただし、 を呼び出すupdate_form
と、カスタム検証では更新されたデータが考慮されませんmodify
。このタイプの検証を行うためのある種の事前フックはありますか?
pymongo - pymongo/mongoengine の pip から正しいバージョンの bson を見つける方法
私は、bson の ObjectId を使用する (python 2.7) フラスコ mongoengine アプリケーションに取り組んでいます。プロジェクトには何らかの方法で bson が必要です。アプリケーションをデプロイしようとしているホストにルート アクセス権がなく、pip install bson が失敗します。
一方、https://api.mongodb.org/python/current/installation.htmlは、このバージョンの bson を使用して pymongo の実装に依存するべきではないと述べています。ただし、pymongo-3.2.1 がインストールされているコンピューターでは、pymongo.objectId をインポートできません。
ありがとうございます!
mongodb - mongoengine フィルター クエリで埋め込みドキュメントを取得する
Server.objects.all()
text_list
デフォルトでは、クエリセットにはフィールドの値が含まれていません。これを行う必要があります-(text_list
クエリセット内の各オブジェクトのフィールドの値を取得するため。
私の場合/シナリオでは、これを行うことはできません。つまり、クエリセット自体ですべてのデータを取得する必要があることを意味します(つまり、を使用せずに、ネストされたすべての詳細を取得するクエリセットが必要ですobj.text_list
)
例えば
さらにmongo shell -
db.server.find()
ネストされたすべての埋め込みドキュメントが含まれます。
orm または raw_query を使用して mongoengine でこれを行うにはどうすればよいでしょうか。
to_json()
メソッドを使用して、mongoengine ormでこの問題を解決できます
json.loads(queryset.to_json())
Server.objects.all().to_json()
埋め込みモデルの情報を含む結果を返しますが、何百万ものドキュメントでページネーションを使用する場合、これは効率的ではありません。その場合、mongo はすべてのオブジェクトを to_json に変換しようとします。
python-3.x - ステップダウン時に MongoEngine ReplicaSet 接続が失敗する
最近、レプリカ セットで Mongoengine と Flask を使用しようとしています。接続できますが、プライマリ ノードが変更されると、接続が失われ、切断されます。
これは、動作をテストできるスニペットです。非常に便利なhttp://flip-flop.mlab.com/サイトを使用して、レプリカ セットの問題をデバッグして います。
プライマリがエラーを変更するたびに取得します: pymongo.errors.AutoReconnect: connection closed
。
どうもありがとう!いくつかの異なる pyMongo バージョンを試しましたが、成功しませんでした。どんな助けでも本当に、本当に感謝します!
python - AWS + MongoDB : AWS linux インスタンスで mongo サーバーに接続するには?
AWS Linux インスタンスを起動し、こちらの指示に従って mongo をインストールして実行しました。mongo サービスが実行されており、27017 で接続を受け入れています。ただし、ポート 27017 でサーバー publik dns にアクセスすると、サーバーが応答せず、デフォルトの mongo メッセージが表示されません。
別のインスタンスで Python(Flask) サーバーを実行しようとしていて、プライベート IP を使用して mongo サーバーに接続しようとしていますが、接続できません。端末に次のエラー メッセージが表示されます。
pymongo.errors.ServerSelectionTimeoutError: xxx.xx.xx.xx:27017: [Errno 111] 接続が拒否されました
これは aws で mongo db を使用する正しい方法ではありませんか? このアプローチが実行可能な場合、接続が発生しない原因は何ですか?
すべての入力に感謝します。
flask - フラスコ/モンゴエンジン ドキュメントにカスタム id フィールドを追加する
Django/MySQL から Flask/mongo-engine へのアプリケーションの改良に取り組んでおり、id
フィールドを持つモデルの作成に問題があります。これはサンプル モデルです。
下位互換性のために、名前がそのままのフィールドが必要id
です。これは MySQL では正常に機能していましたが、mongo-engine はField is required: ['id'] Invalid Object ID: ['auto_id_0']
上記のモデルのドキュメントに対して ValidationError を返します。
また、次のdb_field
ようにパラメーターを使用してみました
...しかし、役に立たない。
ObjectID
mongodbのデフォルト フィールドをオーバーライドするつもりはないことに注意してください。逆シリアル化時にフィールドの名前を変更する以外に、これに対する回避策はありますか?
mongodb - mongoengine.EmbeddedDocument クラスで save メソッドを呼び出す方法
Model1
インスタンスを保存するとき。save メソッドを呼び出さない
Model2 で save メソッドを明示的に呼び出そうとすると、NoneType object has no attr save