2014-01-20 47 views
0

生产中的相同代码库在我的服务器日志中给了我下面的错误。这个问题似乎与我在Django CMS中使用的zinnia博客应用程序有关。什么是这个错误,我该如何解决?Django'模块'对象没有属性ALL_FIELDS

我必须重新安装此百日草,仍然得到错误,奇怪的是,这个问题并没有在我的本地机器上使用相同的数据库出现。

File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 255, in __call__ 
response = self.get_response(request) 
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 178, in get_response 
response = self.handle_uncaught_exception(request, resolver, sys.exc_info()) 
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 220, in handle_uncaught_exception 
if resolver.urlconf_module is None: 
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 342, in urlconf_module 
self._urlconf_module = import_module(self.urlconf_name) 
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module 
__import__(name) 
File "/srv/project/cherry/cherry/core/urls.py", line 6, in <module> 
admin.autodiscover() 
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/__init__.py", line 29, in autodiscover 
import_module('%s.admin' % app) 
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module 
__import__(name) 
File "/usr/local/lib/python2.7/dist-packages/zinnia/admin/__init__.py", line 6, in <module> 
from zinnia.admin.entry import EntryAdmin 
File "/usr/local/lib/python2.7/dist-packages/zinnia/admin/entry.py", line 25, in <module> 
from zinnia.admin.forms import EntryAdminForm 
File "/usr/local/lib/python2.7/dist-packages/zinnia/admin/forms.py", line 17, in <module> 
class CategoryAdminForm(forms.ModelForm): 
File "/usr/local/lib/python2.7/dist-packages/zinnia/admin/forms.py", line 44, in CategoryAdminForm 
class Meta: 
File "/usr/local/lib/python2.7/dist-packages/zinnia/admin/forms.py", line 49, in Meta 
fields = forms.ALL_FIELDS 
**AttributeError: 'module' object has no attribute 'ALL_FIELDS'** 

文件服务器上从/usr/local/lib/python2.7/dist-packages/zinnia/admin/forms.py:

"""Forms for Zinnia admin""" 
from django import forms 
from django.db.models import ManyToOneRel 
from django.db.models import ManyToManyRel 
from django.contrib.sites.models import Site 
from django.utils.translation import ugettext_lazy as _ 
from django.contrib.admin.widgets import RelatedFieldWidgetWrapper 

from mptt.forms import TreeNodeChoiceField 

from zinnia.models.entry import Entry 
from zinnia.models.category import Category 
from zinnia.admin.widgets import MPTTFilteredSelectMultiple 
from zinnia.admin.fields import MPTTModelMultipleChoiceField 


class CategoryAdminForm(forms.ModelForm): 
    """ 
    Form for Category's Admin. 
    """ 
    parent = TreeNodeChoiceField(
     label=_('Parent category'), 
     level_indicator='|--', required=False, 
     empty_label=_('No parent category'), 
     queryset=Category.objects.all()) 

    def __init__(self, *args, **kwargs): 
     super(CategoryAdminForm, self).__init__(*args, **kwargs) 
     rel = ManyToOneRel(Category._meta.get_field('tree_id'), 
          Category, 'id') 
     self.fields['parent'].widget = RelatedFieldWidgetWrapper(
      self.fields['parent'].widget, rel, self.admin_site) 

    def clean_parent(self): 
     """ 
     Check if category parent is not selfish. 
     """ 
     data = self.cleaned_data['parent'] 
     if data == self.instance: 
      raise forms.ValidationError(
       _('A category cannot be parent of itself.')) 
     return data 

    class Meta: 
     """ 
     CategoryAdminForm's Meta. 
     """ 
     model = Category 
     fields = forms.ALL_FIELDS 



class EntryAdminForm(forms.ModelForm): 
    """ 
    Form for Entry's Admin. 
    """ 
    categories = MPTTModelMultipleChoiceField(
     label=_('Categories'), required=False, 
     queryset=Category.objects.all(), 
     widget=MPTTFilteredSelectMultiple(_('categories'), False, 
              attrs={'rows': '10'})) 

    def __init__(self, *args, **kwargs): 
     super(EntryAdminForm, self).__init__(*args, **kwargs) 
     rel = ManyToManyRel(Category, 'id') 
     self.fields['categories'].widget = RelatedFieldWidgetWrapper(
      self.fields['categories'].widget, rel, self.admin_site) 
     self.fields['sites'].initial = [Site.objects.get_current()] 

    class Meta: 
     """ 
     EntryAdminForm's Meta. 
     """ 
     model = Entry 
     fields = forms.ALL_FIELDS 

壳牌:

Python 2.7.3 (default, Sep 26 2013, 20:03:06)                             
[GCC 4.6.3] on linux2                                   
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django                                    
>>> django.VERSION                                    
(1, 5, 1, 'final', 0)                      
>>> from django.forms import ALL_FIELDS                              
Traceback (most recent call last):                                
    File "<stdin>", line 1, in <module>                               
ImportError: cannot import name ALL_FIELDS                              
>>> 
+1

你能告诉我们你的zinnia应用程序forms.py文件吗?另外,你在服务器上安装了什么版本的django?这似乎是不一样的本地机器 – Alvaro

+0

我有Django 1.5.5安装相同的本地工作。在百日草表单文件从安装使用PIP intsall Django的博客,百日草 – Prometheus

+0

https://github.com/Fantomas42/django-blog-zinnia/blob/develop/zinnia/admin/forms.py – Prometheus

回答

相关问题