- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
设置:
Django 1.7 | Postgres 9.x
class Buildings(BaseModel):
number = models.CharField(max_length=25)
class TestGeneric(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey()
假设我创建了一个 TestGeneric
实例,将其与 Building
关联并保存:
TestGeneric.objects.create(content_object=Building.objects.first())
现在,我将 Buildings
重命名为 Building
并运行 makemigrations
。系统提示我 Did you rename the app.Buildings model to Building? [是/否]
我选择是。然后我运行 migrate
并得到:
The following content types are stale and need to be deleted:
app | buildings
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
无论我回答什么,Django 都会自动在 django_content_type
中创建一个新行,并以 building
作为名称和标签。有没有什么方法可以重命名 ContentType
以便我的所有 TestGeneric 行都不会被吹走?
最佳答案
我刚刚在一个项目中使用了这个;需要注意的是,如果您在尝试应用自动创建的模型重命名迁移之前创建迁移,则此操作不会出现问题。
您需要更改应用名称、型号名称和之前的迁移以匹配您的设置;在此示例中,我们将模型的名称从 profile
更改为 member
。
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
from django.conf import settings
sql = """UPDATE django_content_type
SET name = 'member',
model = 'member'
WHERE name = 'profile' AND
model = 'profile' AND
app_label = 'open_humans';"""
reverse_sql = """UPDATE django_content_type
SET name = 'profile',
model = 'profile'
WHERE name = 'member' AND
model = 'member' AND
app_label = 'open_humans';"""
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('open_humans', '0004_auto_20150106_1828'),
]
operations = [
migrations.RunSQL(sql, reverse_sql)
]
关于python - Django 重命名模型。创建新的 django_content_type 而不是重命名旧记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773849/
我正在尝试在 django (1.9.7) 中执行 --fake-initial 迁移,但它给了我一个奇怪的错误: django.db.utils.OperationalError: (1054, "
我在我的网站 example.com 上部署了 django-oscar 的示例应用程序沙箱。我想把它移到 example.com:8000 并在 example.com url 运行另一个项目。我成
我正在尝试运行不是由我编写的应用程序。当我写python manage.py makemigrations我得到了: Traceback (most recent call last):
升级到 django 1.8 后,我在迁移过程中收到错误消息: ProgrammingError: relation "django_content_type" already exists 我会对这
Django 内容类型表查询在管理员用户添加页面中命中 n 次,其他页面工作正常。任何人都可以协助和帮助解决这个问题,让我知道为什么它会出现 n 次吗?这是查询 SELECT "django_cont
我刚刚将 django 从 1.7.1 升级到 1.8.4。我尝试运行 python manage.py migrate 但出现此错误: django.db.utils.ProgrammingErro
我正在尝试为我的 django 项目启动单元测试,它返回以下错误: ERROR: varys.users.tests.test_all_views (unittest.loader.ModuleImp
我正在尝试创建 ContentType 引用 ( https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-rel
设置: Django 1.7 | Postgres 9.x class Buildings(BaseModel): number = models.CharField(max_length=2
我正在开发一个 Django(1.8) 项目。我正在尝试实现 django-seo2 . 在 GitHub 上集成 Travis CI 以实现持续集成。 我在 Travis 上不断收到以下错误: Pr
我有一个在我的 PC 上慢慢建立的项目,它运行良好。我只是想把它放到服务器上,但我收到了这个错误: django.db.utils.ProgrammingError: relation "django
知道为什么我在尝试迁移时会收到此错误吗? django.db.utils.ProgrammingError: relation "django_content_type" 我正在使用 Django 1
进行迁移时,我不断收到以下错误(python manage.py migrate): django.db.utils.ProgrammingError: column "name" of relati
我无法使用 syncdb,因为我的应用程序使用了一些 MySQL View 。我跑了manage.py sqlall ,但这不会输出 django_content_type 表或 auth_perm
我正在尝试使用 Heroku 部署我的第一个真正的网站。我过去曾成功部署过一个 super 简单的网站,但这次我似乎陷入了困境。我能够在本地正常运行该网站。 当我在 Heroku 上单击“免费部署”时
我在 models.py 中添加了一个新模型: class Attendence_Mgmt(models.Model): teacher_name=models.ForeignKey(T
我的 django 项目有一个工作管理页面,但突然间我开始收到: “'字段列表'中的未知列'django_content_type.name'” 每当我尝试访问管理页面时。我仍然可以访问管理的某些部分
在我第一次尝试使用 django-reversion 期间,我正在评估它以查看我是否可以在我的模型上执行某些基本的版本检索操作: 在还原范围内保存对特定字段的更改后,我无法检索特定模型的先前版本列表,
django.db.utils.InternalError: (1050, “表 'django_content_type' 已经存在”) 我刚刚从我的 friend 那里复制了一个项目,当我运行 m
我遇到了错误 django.db.utils.ProgrammingError: (1146, "Table 'db_name.django_content_type' doesn't exist")
我是一名优秀的程序员,十分优秀!