gpt4 book ai didi

django - * 后的 add() 参数必须是序列,而不是组

转载 作者:行者123 更新时间:2023-12-01 01:11:14 25 4
gpt4 key购买 nike

我正在尝试使用 importer-option 将“组”作为额外字段传递来自 django-adaptors但我收到以下错误...

* 后面的 add() 参数必须是一个序列,而不是 Group

ContactCSVModel.import_data(data=self.filepath, extra_fields="1")

这是我的 CsvModel...

CsvModel.py
class ContactCSVModel(CsvModel):

first_name = CharField()
last_name = CharField()
company = CharField()
mobile = CharField()
groups = DjangoModelField(Group)

class Meta:
delimiter = "^"
dbModel = Contact
update = {
'keys': ['mobile']
}

模型.py
class Contact(models.Model):
"""
Stores all contacts.
"""
first_name = models.CharField(max_length=60)
last_name = models.CharField(max_length=60)
company = models.CharField(max_length=100,blank=True)
mobile = models.IntegerField(max_length=20)
active = models.BooleanField(help_text="States if pet type is active/selectable.")
modified = models.DateTimeField(null=True, auto_now=True, help_text="Shows when object was modified.")
created = models.DateTimeField(auto_now_add=True, help_text="Shows when object was created.")

#FK
groups = models.ManyToManyField(Group, related_name='contacts')

查看 git 上的项目(如下),该项目和 many2many 领域是否有任何问题,也许,如果有如何解决?还是我的代码?

https://github.com/anthony-tresontani/django-adaptors/blob/master/adaptor/model.py#L436

最佳答案

目前 django-adaptors 不支持 ManyToManyFields。随着关于它的请求越来越多,我将很快整合它。

如果你想解决这个问题,你应该分两步工作。
第一个是通过删除使用简单的 CSVModel 创建一个 python 对象:

dbModel = Contact

不幸的是,您还必须手动执行更新逻辑。

然后,您需要通过执行以下操作来显式创建 django 实例:
contact = Contact.objects.create(first_name = csv_object.first_name, ....)
contact.groups.add(csv_object.group)

希望有帮助

关于django - * 后的 add() 参数必须是序列,而不是组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com