phi*_*o20 160 django list manytomanyfield
基于Django文档,我应该能够一次传递多个对象以添加到一个多人关系但我得到一个
* TypeError:不可用类型:'list'
当我尝试传递一个列表中的django查询集.传递Queryset或ValuesListQueryset似乎也失败了.有没有比使用for循环更好的方法?
Yuj*_*ita 282
使用:object.m2mfield.add(*items)
如文档中所述:
add()
接受任意数量的参数,而不是它们的列表.
add(obj1, obj2, obj3, ...)
Run Code Online (Sandbox Code Playgroud)
要将该列表扩展为参数,请使用 *
add(*[obj1, obj2, obj3])
Run Code Online (Sandbox Code Playgroud)
Django不会调用obj.save()
每个项目,而是使用bulk_create()
.
Dr *_*tan 39
要添加,如果要从查询集添加它们
例
# Returns a queryset
permissions = Permission.objects.all()
# Turns it into a list
permissions = list(permissions)
# Add the results to the many to many field (notice the *)
group = MyGroup.objects.get(name='test')
group.permissions.add(*permissions)
Run Code Online (Sandbox Code Playgroud)
aer*_*ero 29
Django 1.9增加了添加多对多关系的其他方法.
文档:https://docs.djangoproject.com/en/1.9/ref/models/relations/#django.db.models.fields.related.RelatedManager.set
set
是一个新的精确:
>>> new_list = [obj1, obj2, obj3]
>>> e.related_set.set(new_list)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
69902 次 |
最近记录: |