kdt*_*kdt 5 database django django-models
如果我有一个models.py
class WidgetType(models.Model):
name = models.CharField(max_length=200)
class Widget(models.Model):
typeid = models.ForeignKey(WidgetType)
data = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
WidgetType当我知道我只会拥有某些类型的小部件时,如何构建一组内置常量值?显然我可以启动我的管理界面并手动添加它们,但我想通过将它内置到 python 来简化配置。
您可以使用固定装置:
http://docs.djangoproject.com/en/dev/howto/initial-data/#providing-initial-data-with-fixtures
严格来说,fixtures 不是模型的一部分,也不是任何与此相关的 Python 代码。如果你真的需要在你的 python 代码中使用它,你可以监听post_migrate信号并通过 ORM 插入你的数据,例如:
from django.db.models.signals import post_migrate
def insert_initial_data(sender, app, created_models, verbosity, **kwargs):
if WidgetType in created_models:
for name in ('widgettype1', 'widgettype2', 'widgettype3'):
WidgetType.objects.get_or_create(name=name)
post_migrate.connect(insert_initial_data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1876 次 |
| 最近记录: |