【发布时间】:2016-09-01 18:59:44
【问题描述】:
我不是专家,但我认为使用类来定义选择并使用这些选择预填充数据库是一个好主意。我认为这更容易改变选择等
所以在我的models.py 我有:
class City(models.Model):
name = models.CharField(max_length=32)
distance = models.SmallIntegerField(blank=True, null=True)
#etc
class OtherClass(models.Model):
name = models.CharField(max_length=32)
#etc
class UserProfile(models.Model):
name = models.CharField(max_length=32)
city = models.ForeignKey(City)
otherfield = models.ForeignKey(OtherClass)
#etc
UserProfile 是用户编译的,City, OtherClass 是程序员放置选项的地方。
迁移后,我必须创建一些 City 和 OtherClass 对象:它们将成为选项(是的,它们必须被修复)。
我刚刚了解了fixtures。到目前为止,我使用的是script:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'sitopossedimenti.settings')
import django
django.setup()
from core.models import *
def populate():
namecity1 = add_source('city1', None)
namecity2 = add_source('city2', None)
@etc
nameotherclass1 = add_otherclass('name1', #etc)
#etc some thousands more
def add_source(name, distance):
s = model.Source.objects.get_or_create(name=name, distance=distance)[0]
s.save()
return s
def add_otherclass:
#etc
if __name__ == '__main__':
print ("Starting myapp population script...")
populate()
目前脚本(大约)可以正常工作,但我不敢改变......但你怎么看?固定装置更好吗?为什么?有区别吗?
【问题讨论】:
标签: python django database django-testing django-migrations