Python mongoengine mongodbforms通过意外错误属性error:';对象';对象没有属性'__获取项目';
我正在使用django mongoengine,我在google和stackoverflow上搜索时发现了这个错误,但没有得到任何解决方案。这是我遇到的一种全新的错误 这是我的追踪:Python mongoengine mongodbforms通过意外错误属性error:';对象';对象没有属性'__获取项目';,python,django,mongodb,django-queryset,mongoengine,Python,Django,Mongodb,Django Queryset,Mongoengine,我正在使用django mongoengine,我在google和stackoverflow上搜索时发现了这个错误,但没有得到任何解决方案。这是我遇到的一种全新的错误 这是我的追踪: Internal Server Error: /quixom/album-view/ Traceback (most recent call last): File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/core/han
Internal Server Error: /quixom/album-view/
Traceback (most recent call last):
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 113, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/cis/DjangoLive/quixom/quixom/apps/users/views.py", line 102, in album_view
return render(request, 'photologue/album_view.html', ctx)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/shortcuts/__init__.py", line 53, in render
return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/loader.py", line 177, in render_to_string
return t.render(context_instance)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 124, in render
return compiled_parent._render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render
bit = self.render_node(node, context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/debug.py", line 74, in render_node
return node.render(context)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 284, in render
if match:
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/queryset.py", line 47, in __len__
list(self._iter_results())
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/queryset.py", line 81, in _iter_results
self._populate_cache()
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/queryset.py", line 93, in _populate_cache
self._result_cache.append(self.next())
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 1137, in next
raw_doc = self._cursor.next()
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 1182, in _cursor
self._cursor_obj = self._collection.find(self._query,
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 1215, in _query
self._mongo_query = self._query_obj.to_query(self._document)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/visitor.py", line 92, in to_query
query = query.accept(QueryCompilerVisitor(document))
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/visitor.py", line 157, in accept
return visitor.visit_query(self)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/visitor.py", line 80, in visit_query
return transform.query(self.document, **query.query)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/queryset/transform.py", line 87, in query
value = field.prepare_query_value(op, value)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/fields.py", line 943, in prepare_query_value
return self.to_mongo(value)
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongoengine/fields.py", line 912, in to_mongo
id_field_name = self.document_type._meta['id_field']
File "/home/cis/ENV/photoapp/local/lib/python2.7/site-packages/mongodbforms/documentoptions.py", line 87, in __getitem__
return self._wrapped.__getitem__(key)
AttributeError: 'object' object has no attribute '__getitem__'
这是我的模型:
PERMISSION_CHOICES = (
('friend', 'Friend'),
('public', 'public'),
('private', 'Private'),
)
class PhotoAlbum(Document):
name = StringField(max_length=200)
slug = StringField(required=True, max_length=250, unique=True)
created_at = DateTimeField(default=datetime.now)
user = ReferenceField(User)
is_role = StringField(max_length=50,required=True, choices = PERMISSION_CHOICES)
意见如下:
@login_required
def album_view(request):
"""
This method for show album and photo listing galary of login user
"""
try:
profile_pic = Photo.objects.get(user=request.user, profile_pic=True)
profile_album = profile_pic.album
except:
profile_album = False
albums = PhotoAlbum.objects.filter(user=request.user)
#albums = PhotoAlbum.objects(user=request.user)
#albums = PhotoAlbum.objects()
#album = albums.filter(user=request.user)
ctx = {
'albums': albums,
'profile_album': profile_album
}
return render(request, 'photologue/album_view.html', ctx)
我在这方面做了很多研究,我认为mongoengine的缓存查询也会遇到这个问题,但我也尝试了
no\u cache
,但仍然遇到了相同的错误 Twig无法在yout相册上迭代。您需要将“.all()”添加到“albums=PhotoAlbum.objects.filter(user=request.user)”的末尾。或者更好,在上下文中进行
ctx = {
'albums': albums.all(),
'profile_album': profile_album
}