Python 如何编辑Django模型
假设我的模型上有一些数据,我想对其进行编辑,我如何做到这一点而不删除模型或像在管理面板上那样重新创建一个新模型?如果您想在面板外自动执行一些大的操作(如更改每个空值),您必须使用Python 如何编辑Django模型,python,python-3.x,django,django-models,Python,Python 3.x,Django,Django Models,假设我的模型上有一些数据,我想对其进行编辑,我如何做到这一点而不删除模型或像在管理面板上那样重新创建一个新模型?如果您想在面板外自动执行一些大的操作(如更改每个空值),您必须使用python manage.py shell手动插入列 假设您有一个名为myModel的models.Model继承类,您稍后决定添加一个名为b的新列 您的类定义为: class myModel(models.Model): a = models.TextField(max_length=20, null=Tru
python manage.py shell
手动插入列
假设您有一个名为myModel
的models.Model继承类,您稍后决定添加一个名为b
的新列
您的类定义为:
class myModel(models.Model):
a = models.TextField(max_length=20, null=True)
b = models.TextField(max_length=20, null=True) # this is added later
现在您要做的是运行python manage.py shell
并执行以下操作
>>> from app.models import myModel # I assmue your app is named app
>>> myModel.objects.all() # All the previous models that were created
<QuerySet [<myModel: myModel object (1)>]>
>>> for model in myModel.objects.all():
... if not model.b:
... model.b = "THIS WAS NULL, NOW IT ISN'T" # modify as you wish
... model.save()
>>从app.models导入myModel#我想您的应用程序名为app
>>>myModel.objects.all()#创建的所有以前的模型
>>>对于myModel.objects.all()中的模型:
... 如果不是型号b:
... model.b=“这是空的,现在它不是”#根据您的意愿进行修改
... model.save()
如果我正确理解了您的问题,编辑数据的一个简单方法是将您的模型添加到管理员中,其中包含您要更改和编辑的字段,在应用程序的admin.py中添加如下内容:
from django.contrib import admin
from youapp.models import MyModel
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
pass
然后运行您的项目并通过管理员手动更新,另一个选项是使用django shell或创建自定义迁移
注:通常你可以访问管理员在http://localhost:8000/admin
您可能需要创建一个超级用户,运行python manage.py createsuperuser
并按照说明操作
在models.py
中更改模型.Model
类中所需的任何内容,然后运行python manage.py makemigrations
和python manage.py migrate
对模型类进行更改。然后您需要为模型生成/创建以应用更改。您的意思是要在模型上添加/删除字段吗?@Countour Integral我说的是数据,而不是模型本身。我想编辑它。我们可以保存新数据,但如何编辑现有数据?