我想编辑工作正常的模型(数据存储没有问题)。因此,我编辑了模型类,然后运行了 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/