基本上,我正在创建一个用户可以拥有多种技能的应用程序。所以我设置如下:
class Skill(models.Model):
name = models.CharField(max_length=30)
class Listing(models.Model):
...(other stuff for the model here)
skill = models.ManyToManyField(Skill,)
然后我将创建一个看起来像这样的表单:
class ListingForm(ModelForm):
skill = forms.ModelMultipleChoiceField(queryset=Skill.objects.all())
class Meta:
model = Listing
最终结果是我希望每个技能都显示为表单中的复选框。所以可能有30种技能可供选择,然后用户可以检查他们中的任何一个他们是否精通。我面临的问题是我最初必须创建这30个技能对象。我知道如何创建对象,但我不知道在哪里放置代码,以便在服务器第一次启动时才能创建~30技能。我应该在哪里创建初始技能对象?有更好的方法吗?
答案 0 :(得分:0)
您可以创建fixtures.json文件并使用loaddata:
<强> fixtures.json 强>
[
{
"pk": 1,
"model": "appname.skill",
"fields": {
"name": "skill name",
}
}
}
cmd行:
python manage.py loaddata path/to/fixtures.json
以下是一些文档:Providing initial data