|
1 | 1 | import warnings |
2 | 2 |
|
3 | 3 | import mongoengine |
4 | | -from flask import Flask, abort, current_app |
5 | | -from mongoengine.errors import DoesNotExist |
6 | | -from mongoengine.queryset import QuerySet |
| 4 | +from flask import Flask, current_app |
7 | 5 |
|
8 | | -from flask_mongoengine import db_fields |
| 6 | +from flask_mongoengine import db_fields, documents |
9 | 7 | from flask_mongoengine.connection import * |
10 | 8 | from flask_mongoengine.json import override_json_encoder |
11 | 9 | from flask_mongoengine.pagination import * |
@@ -80,8 +78,8 @@ def __init__(self, app=None, config=None): |
80 | 78 | self.config = config |
81 | 79 |
|
82 | 80 | # Extended documents classes |
83 | | - self.Document = Document |
84 | | - self.DynamicDocument = DynamicDocument |
| 81 | + self.Document = documents.Document |
| 82 | + self.DynamicDocument = documents.DynamicDocument |
85 | 83 |
|
86 | 84 | if app is not None: |
87 | 85 | self.init_app(app, config) |
@@ -147,81 +145,3 @@ def __getattr__(self, attr_name): |
147 | 145 | modified by us, and not mapped directly. |
148 | 146 | """ |
149 | 147 | return getattr(mongoengine, attr_name) |
150 | | - |
151 | | - |
152 | | -class BaseQuerySet(QuerySet): |
153 | | - """Extends :class:`~mongoengine.queryset.QuerySet` class with handly methods.""" |
154 | | - |
155 | | - def _abort_404(self, _message_404): |
156 | | - """Returns 404 error with message, if message provided. |
157 | | -
|
158 | | - :param _message_404: Message for 404 comment |
159 | | - """ |
160 | | - abort(404, _message_404) if _message_404 else abort(404) |
161 | | - |
162 | | - def get_or_404(self, *args, _message_404=None, **kwargs): |
163 | | - """Get a document and raise a 404 Not Found error if it doesn't exist. |
164 | | -
|
165 | | - :param _message_404: Message for 404 comment, not forwarded to |
166 | | - :func:`~mongoengine.queryset.QuerySet.get` |
167 | | - :param args: args list, silently forwarded to |
168 | | - :func:`~mongoengine.queryset.QuerySet.get` |
169 | | - :param kwargs: keywords arguments, silently forwarded to |
170 | | - :func:`~mongoengine.queryset.QuerySet.get` |
171 | | - """ |
172 | | - try: |
173 | | - return self.get(*args, **kwargs) |
174 | | - except DoesNotExist: |
175 | | - self._abort_404(_message_404) |
176 | | - |
177 | | - def first_or_404(self, _message_404=None): |
178 | | - """ |
179 | | - Same as :func:`~BaseQuerySet.get_or_404`, but uses |
180 | | - :func:`~mongoengine.queryset.QuerySet.first`, not |
181 | | - :func:`~mongoengine.queryset.QuerySet.get`. |
182 | | -
|
183 | | - :param _message_404: Message for 404 comment, not forwarded to |
184 | | - :func:`~mongoengine.queryset.QuerySet.get` |
185 | | - """ |
186 | | - return self.first() or self._abort_404(_message_404) |
187 | | - |
188 | | - def paginate(self, page, per_page, **kwargs): |
189 | | - """ |
190 | | - Paginate the QuerySet with a certain number of docs per page |
191 | | - and return docs for a given page. |
192 | | - """ |
193 | | - return Pagination(self, page, per_page) |
194 | | - |
195 | | - def paginate_field(self, field_name, doc_id, page, per_page, total=None): |
196 | | - """ |
197 | | - Paginate items within a list field from one document in the |
198 | | - QuerySet. |
199 | | - """ |
200 | | - # TODO this doesn't sound useful at all - remove in next release? |
201 | | - item = self.get(id=doc_id) |
202 | | - count = getattr(item, f"{field_name}_count", "") |
203 | | - total = total or count or len(getattr(item, field_name)) |
204 | | - return ListFieldPagination( |
205 | | - self, doc_id, field_name, page, per_page, total=total |
206 | | - ) |
207 | | - |
208 | | - |
209 | | -class Document(mongoengine.Document): |
210 | | - """Abstract document with extra helpers in the queryset class""" |
211 | | - |
212 | | - meta = {"abstract": True, "queryset_class": BaseQuerySet} |
213 | | - |
214 | | - def paginate_field(self, field_name, page, per_page, total=None): |
215 | | - """Paginate items within a list field.""" |
216 | | - # TODO this doesn't sound useful at all - remove in next release? |
217 | | - count = getattr(self, f"{field_name}_count", "") |
218 | | - total = total or count or len(getattr(self, field_name)) |
219 | | - return ListFieldPagination( |
220 | | - self.__class__.objects, self.pk, field_name, page, per_page, total=total |
221 | | - ) |
222 | | - |
223 | | - |
224 | | -class DynamicDocument(mongoengine.DynamicDocument): |
225 | | - """Abstract Dynamic document with extra helpers in the queryset class""" |
226 | | - |
227 | | - meta = {"abstract": True, "queryset_class": BaseQuerySet} |
0 commit comments