如何扩展django Zinia日志条目

如何扩展django Zinia日志条目,django,zinnia,zinnia-entry,Django,Zinnia,Zinnia Entry,我遵循了这里的说明 不幸的是,我无法扩展。 第一件奇怪的事情是-我必须改变输入模块的导入方式: 从 到 更改后,我运行服务器并转到管理页面,但随后出现此错误 'RatingAdmin.fieldsets[0][1]['fields']' refers to field 'rating' that is missing from the form. 这是我的代码admin.py from django.contrib import admin from django.utils.transla

我遵循了这里的说明

不幸的是,我无法扩展。 第一件奇怪的事情是-我必须改变输入模块的导入方式:

更改后,我运行服务器并转到管理页面,但随后出现此错误

'RatingAdmin.fieldsets[0][1]['fields']' refers to field 'rating' that is missing from the form.
这是我的代码admin.py

from django.contrib import admin
from django.utils.translation import ugettext_lazy as _


from zinnia.models import Entry
from zinnia.admin import EntryAdmin

class RatingAdmin(EntryAdmin):
# into the 'Content' fieldset
fieldsets = ((_('Content'), {'fields': (
'title', 'content', 'image', 'status', 'rating')}),) + \
EntryAdmin.fieldsets[1:]

# Unregister the default EntryAdmin
# then register the EntryGalleryAdmin class
admin.site.unregister(Entry)
admin.site.register(Entry, RatingAdmin)
这是我的抽象类模型happy_models.py

from django.db import models
from zinnia.models.entry import EntryAbstractClass

class Happy(models.Model):
    rating = models.CharField(max_length=200)

    def __unicode__(self):
        return u'Rating %s' % self.title

    class Meta(EntryAbstractClass.Meta):
        abstract = True
这是我在settings.py中的百日咳条目基本模型路径

ZINNIA_ENTRY_BASE_MODEL = 'happy.happy_models.Happy'
我只是在控制台上注意到了这一点

/zinnia/models.py:30‌​2: RuntimeWarning: happy.happy_models.Happy cannot be imported
这是我的目录设置

happy/
    admin.py
    happy_models.py
    views.py

扩展条目时我可能做错了什么?

我认为您跳过了两个部分:

  • 从zinnia.models.entry创建您自己的扩展模型:EntryAbstractClass
  • 告诉Zinia使用settings.py文件中的Zinia_ENTRY_BASE_model设置使用新模型
  • 请注意你如何构建你的应用程序扩展,我通常会这样使用:

    /zinna_extras
        __init__.py
        entry_plus.py  <---- This is where your model that extends EntryAbstractClass goes
        admin.py <--- You got this part right above
        views.py <--- blank
        migrations/ <--- all original zinnia migrations + what you need for your model (see below)
    
    将所有原始的Zinia迁移复制到Zinia_extra应用程序的migrations文件夹中,然后为模型创建所需的任何新迁移。这只是告诉South使用你的应用程序作为Zinnia迁移的源,而不是通常的Zinnia应用程序。

    我终于发现了——通过在交互模式下运行服务器,我能够进行调试。必须将示例代码修改为:-

    from zinnia.models import EntryAbstractClass
    
    而不是

    from zinnia.models.entry import EntryAbstractClass
    

    谢谢,我试过了,但还是失败了。我刚刚在我的控制台/Users/cho/.virtualenvs/tutorial/lib/python2.7/site packages/zinnia/models.py:302:RuntimeWarning:happy.happy\u models.happy无法导入我正在为我的原始帖子添加更多信息。如果你抓到什么,请告诉我。谢谢,教授,我不知道什么是南迁。我需要使用它吗?用户明确建议将重新定义的模型放入
    models.py
    。。。
    SOUTH_MIGRATION_MODULES = {
        'zinnia': 'zinnia_extras.migrations.zinnia',
    }
    
    from zinnia.models import EntryAbstractClass
    
    from zinnia.models.entry import EntryAbstractClass