我与Django框架工作。我有两个模型:Component和ComponentProperty。如何通过明确添加对象的字段添加在Django夹具的关系?
class Component(models.Model):
name = models.CharField(unique=True, max_length=255)
component_properties = models.ManyToManyField(ComponentProperty)
class ComponentProperty(models.Model):
label = models.CharField(unique=True, max_length=255)
component_type = models.CharField(max_length=255)
和串行:
class ComponentSerializer(serializers.ModelSerializer):
class Meta:
model = Component
fields = ('name', 'component_properties')
depth = 1
class ComponentPropertySerializer(serializers.ModelSerializer):
class Meta:
model = ComponentProperty
fields = ('label', 'component_type')
我试图用夹具来加载数据。我写和夹具文件,看起来像这样:
[ {
"pk": 1,
"model": "api.componentproperty",
"fields": {
"label": "label",
"component_type": "text"
}},
{
"pk": 2,
"model": "api.componentproperty",
"fields": {
"label": "description",
"component_type": "text",
}},{
"pk": 1,
"model": "api.component",
"fields": {
"name": "text",
"component_properties": [1, 2]}}]
这工作正常!但我有20个装置要加载。我想有夹具(component.json例如)是这样的波纹管:
[{
"pk": null,
"model": "api.component",
"fields": {
"name": "text",
"component_properties": [{
"pk": null,
"model": "api.componentproperty",
"fields": {
"label": "label",
"component_type": "text"
}}, {
"pk": null,
"model": "api.componentproperty",
"fields": {
"label": "description",
"component_type": "text",
}}]}}]
蛋糕上的糖衣必须灯具指定如here主键。请,任何人都可以帮助我写这些夹具没有派克和上述关系?
如果省略'pk'或将其设置为'null'会发生什么? –
django.core.serializers.base.DeserializationError:问题安装夹具component.json ':[“ '{' PK ':无, '模型': 'api.componentproperty', '字段':{' 的component_type':'文本' 'DEFAULT_VALUE': '字串', '数据':[], '标签': '标签'}}' 值必须是一个整数“]:(api.component:PK =无)FIELD_VALUE是 '{' PK ':无, '模型': 'api.componentproperty', '字段':{' 的component_type': '文本', 'DEFAULT_VALUE': '字串', '数据':[], '标签': '标签' }}' –
我试图让fixture文件看起来像:[component.json](https://drive.google.com/file/d/0B30Ar7SFl-tXdkJJRTY2cnBhck0/view?usp=sharing) –