尊敬的StackOverflow社区。 我的问题与在包含多个字段的表中插入新记录有关。在
我花了一整天的时间试图自己解决这个问题,阅读django文档,并在stackoverflow中冲浪。在
我的模型.py公司名称:
from django.db import models
from django_extensions.db.models import TimeStampedModel
class clans(TimeStampedModel):
rfam_acc = models.CharField(max_length=7)
rfam_id = models.CharField(max_length=40)
description = models.CharField(max_length=100)
author = models.CharField(max_length=100)
comment = models.CharField(max_length=2000, null=True)
class Meta:
ordering = ('rfam_id',)
def __str__(self):
return self.rfam_id
class families(TimeStampedModel):
rfam_acc = models.CharField(max_length=7)
rfam_id = models.CharField(max_length=40)
description = models.CharField(max_length=75)
author = models.CharField(max_length=100)
clan = models.ManyToManyField(clans, null=True, blank=True)
comment = models.CharField(max_length=2000, null=True)
数据收集(从另一个数据库)和插入数据库的脚本:(这是从管理.py壳牌加)。在
^{pr2}$最后是shell中的错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/work/Desktop/StructuRNA/website/scripts/SQLfromRfamIntoClansFamily.py", line 42, in run
clan=clan[1]
File "/Users/work/Desktop/StructuRNA/.VirEnvStructuRna/lib/python3.6/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/work/Desktop/StructuRNA/.VirEnvStructuRna/lib/python3.6/site-packages/django/db/models/query.py", line 397, in create
obj = self.model(**kwargs)
File "/Users/work/Desktop/StructuRNA/.VirEnvStructuRna/lib/python3.6/site-packages/django/db/models/base.py", line 550, in __init__
setattr(self, prop, kwargs[prop])
File "/Users/work/Desktop/StructuRNA/.VirEnvStructuRna/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 499, in __set__
manager = self.__get__(instance)
File "/Users/work/Desktop/StructuRNA/.VirEnvStructuRna/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 476, in __get__
return self.related_manager_cls(instance)
File "/Users/work/Desktop/StructuRNA/.VirEnvStructuRna/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 783, in __init__
(instance, self.source_field_name))
ValueError: "<families: families object>" needs to have a value for field "families" before this many-to-many relationship can be used.
有什么帮助吗? 我不明白什么不管用。在
另一件有趣的事是,在我的数据库中,我发现了第一个元素的插入(在我试图运行脚本时重复了很多次)。 对于m2m字段,此元素也有其正确的值。在
在向ManyToManyField添加条目之前,需要创建“families”对象的实例
另外,您可能对批量创建感兴趣:https://docs.djangoproject.com/en/1.10/ref/models/querysets/#bulk-create
相关问题 更多 >
编程相关推荐