python - Django 修改或重置迁移

标签 python django django-models model

我想编辑工作正常的模型(数据存储没有问题)。因此,我编辑了模型类,然后运行了 manage.py makemigrations 命令,我认为它干扰了我的项目。即使我删除了在模型上添加的内容,它也不会像以前那样工作。感谢您的帮助。

ps:我不关心丢失我保存在数据库中的当前数据

运行迁移命令时出现错误:django.core.exceptions.FieldError:为帖子指定的未知字段(性别编号)

models.py(修改之前)

from django.db import models

class Post(models.Model):

    name = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    number = models.CharField(max_length=100)

    def __str__(self):
        return self.name

models.py(编辑后)

from django.db import models

class Post(models.Model):

    THE_GENDER = [
        ("Monsieur", "Monsieur"),
        ("Madame", "Madame")
    ]

    name = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    gender = models.CharField(max_length=8, choices=THE_GENDER)
    number = models.CharField(max_length=100)


    def __str__(self):
        return self.name

表单.py

from django import forms
from .models import Post
from crispy_forms.helper import FormHelper


class post_form(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(post_form, self).__init__(*args, **kwargs)

        self.helper = FormHelper(self)

    class Meta:
        model = Post
        fields = ["name", "email", "gender" "number"]

最佳答案

好吧,如果你不关心数据:

1) 删除数据库。再次创建它。向 django 授予并刷新权限。

2) 删除所有迁移文件夹,但不删除 init.py 文件(或者仅在 proyect 文件夹中运行此文件)

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete

3) 运行 makemigrations 并迁移。

编辑:检查 forms.py:

fields = ["name", "email", "gender" "number"]

这是你的问题,性别和号码必须用逗号分隔。

fields = ["name", "email", "gender", "number"]

另外,我添加了恢复莫妮卡评论的命令。谢谢。

关于python - Django 修改或重置迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60179249/

相关文章:

python - 查找数据异常值

django - Boost 在 django-haystack 中不起作用

django - 如何查询重叠的日期范围?

python - 如何使用 httplib2 进行相互证书认证

Python 和直接访问命令行实用程序 ifconfig、iwconfig 和 iw

python - 计算过滤器中的多对多值

python - ValueError : The file could not be found with <pipeline. storage.PipelineCachedStorage 对象>

django - 有什么方法可以通过查询集更新 ManyToMany 字段?

python:动态类型转换 - unicode 对象到 python 对象转换

python - Django 代码在本地和服务器上的行为不同