Django迁移问题。 makemigrations忽略模型文件中的某些字段

时间:2018-03-30 09:37:44

标签: django django-models migration models makemigrations

这是我的模型文件

from django.db import models
class Donor(models.Model):
   Donor_name = models.CharField(max_length=150),
   Donor_status = models.IntegerField(),
   Donor_city = models.CharField(max_length=50),
   Donor_group = models.CharField(max_length=10),
   Donor_phone = models.CharField(max_length=12),
   Donor_mail = models.EmailField(max_length=50)

这是我的移民

由Django 2.0.2于2018-03-30 09:19生成

来自django.db导入迁移,模型

类迁移(migrations.Migration):

initial = True

dependencies = [
]

operations = [
    migrations.CreateModel(
        name='Donor',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
        ],
    )

为什么忽略其他字段? 使用Django版本2与MySQL。

1 个答案:

答案 0 :(得分:0)

行尾的逗号会导致Python将它们视为元组。删除它们。

val = tri (x, y, z);

完成此更改后,您可以再次运行#include <stdio.h> #include <cs50.h> #include <stdbool.h> bool tri (double x, double y, double z); int main(void) { bool val; double x = get_double("Give:"); double y = get_double("Another:"); double z = get_double("Now:"); val = tri (x, y, z); printf("x=%g, y=%g, z=%g\n",x,y,z); printf("%s", val ? "true" : "false"); return 0; } bool tri (double x, double y, double z) { if (x<1 || y<1 || z<1) { return false; } if (x+y > z && y+z > x && z+x > y) { return true; } else { return false; } } ,Django应该包含您的新字段。如果尚未运行创建模块的迁移,则可以在执行此操作之前删除迁移文件。您可以使用class Donor(models.Model): Donor_name = models.CharField(max_length=150) Donor_status = models.IntegerField() Donor_city = models.CharField(max_length=50) Donor_group = models.CharField(max_length=10) Donor_phone = models.CharField(max_length=12) Donor_mail = models.EmailField(max_length=50) 检查迁移是否已经运行。

请注意,在Django中,建议使用lowercase_with_underscores作为字段名称,例如: makemigrationspython manage.py showmigrations