Django 如何将自定义id字段转换为普通整数字段?
我正在拼命地尝试与Django迁移相处,请帮助我 这就是我所拥有的:Django 如何将自定义id字段转换为普通整数字段?,django,django-models,django-migrations,django-database,django-1.11,Django,Django Models,Django Migrations,Django Database,Django 1.11,我正在拼命地尝试与Django迁移相处,请帮助我 这就是我所拥有的: class ReceiptNumber(models.Model): id = models.AutoField(primary_key=True, unique=True) 这就是我需要的: class ReceiptNumber(models.Model): number = models.IntegerField() “number”应该包含以前id中的数据。执行此操作时,Django将创建默认的ID
class ReceiptNumber(models.Model):
id = models.AutoField(primary_key=True, unique=True)
这就是我需要的:
class ReceiptNumber(models.Model):
number = models.IntegerField()
“number”应该包含以前id中的数据。执行此操作时,Django将创建默认的ID字段。为了不破坏与其他表的关系,这个表需要具有与以前相同的ID
你能帮忙吗?我尝试了很多方法来解决这个问题,但我真的不知道怎么做。我需要一个循序渐进的向导。合乎逻辑的方法是只克隆id字段,但我不知道如何以及在哪里做
非常感谢你的帮助!已经为此浪费了几天时间。将
编号
字段添加到ReceiptNumber
模型后,运行makemigrations
。现在更改迁移中的操作
列表以执行以下操作:
# This is your migration
from django.db import migrations, models
def copy_id_to_number(apps, schema_editor):
ReceiptNumber = apps.get_model('receipts_app', 'ReceiptNumber')
for receipt_number in ReceiptNumber.objects.all():
receipt_number.save()
class Migration(migrations.Migration):
dependencies = [
('receipts_app', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='receiptnumber',
name='number',
field=models.IntegerField(default=1),
preserve_default=False,
),
migrations.RunPython(copy_id_to_number),
]
将
number
字段添加到ReceiptNumber
模型后,运行makemigrations
。现在更改迁移中的操作
列表以执行以下操作:
# This is your migration
from django.db import migrations, models
def copy_id_to_number(apps, schema_editor):
ReceiptNumber = apps.get_model('receipts_app', 'ReceiptNumber')
for receipt_number in ReceiptNumber.objects.all():
receipt_number.save()
class Migration(migrations.Migration):
dependencies = [
('receipts_app', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='receiptnumber',
name='number',
field=models.IntegerField(default=1),
preserve_default=False,
),
migrations.RunPython(copy_id_to_number),
]
您好,谢谢您的输入,但我需要的数字字段是一个整数只。没有唯一密钥和主键。Instaed我需要默认ID字段作为主键,只想在数字字段中包含当前数据。是否希望此数字位于数据库中?您好,谢谢您的输入,但我只需要数字字段为整数。没有唯一密钥和主键。Instaed我需要默认ID字段作为主键,只想在数字字段中包含当前数据。是否希望此数字位于数据库中?