【问题标题】:Django South Migration To Access Flatpages AppDjango South Migration 以访问 Flatpages 应用程序
【发布时间】:2013-11-02 03:27:35
【问题描述】:

我正在尝试访问南方迁移中的 Flatpages 模型,如下所示:

s = orm['flatpages.Site'].objects.get(id=10)
f = orm['flatpages.FlatPage'].objects.get(id=10)

我收到错误消息,提示站点和平面页面模型在平面页面应用程序中不可用。那我做错了什么?

【问题讨论】:

  • installed_apps 中包含平面页面后是否运行了syncdb?
  • 是的,几次都没有帮助
  • 你也添加了网址格式吗?
  • flatpages 应用程序本身运行良好,这是我遇到问题的迁移
  • ./manage.py sql flatpages 是否显示SiteFlatPage 的sql?您可以将模型导入 shell 控制台并创建它们吗?

标签: django django-south django-flatpages


【解决方案1】:

您无法通过 South 的 orm 对象访问它,但如果您只是想强制进行数据迁移,则可以打破建议并直接导入模型,例如,

from south.db import db
from south.v2 import DataMigration
from django.db import models

from django.contrib.flatpages.models import FlatPage
from django.contrib.sites.models import Site

class Migration(DataMigration):

    def forwards(self, orm):
        site = Site.objects.get_current()
        f = FlatPage.objects.create(
            title="Page Name",
            url="/url/",
            content="..."
        )
        f.sites.add(site)
        f.save()

【讨论】:

  • 这是我最终这样做的方式,但根据迁移中生成的 South docs 和 cmets,这是不受欢迎的。
猜你喜欢
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 2014-02-25
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
相关资源
最近更新 更多