简体   繁体   English

传递对象列表作为Django中的manytomany字段类型

[英]passing list of objects as manytomany field type in django

I want to know if we can pass a list of objects (in this case list of blog objects to the Entry model as the manytomany object parameter). 我想知道是否可以传递对象列表(在这种情况下,博客对象列表作为manytomany对象参数传递给Entry模型)。 On doing so i am not getting the desired result. 这样做我没有得到预期的结果。 Please help. 请帮忙。

models.py models.py

class Blog(models.Model):
    id=models.AutoField(primary_key=True)

class Entry(models.Model):
    id=models.AutoField(primary_key=True)
    blogs=models.ManyToManyField(Blog)

views.py views.py

def something(request):
    list=[]
    for i in range(10):
        list.append(Blog.objects.get(pk=i))
    ans=Entry.objects.filter(blogs=list)
    print(ans)
    #some other work.

First thing you can do is replace your for iterator with this: 您可以做的第一件事是用以下代码替换for迭代器:

blogs = Blog.objects.filter(id__range=[0, 10])

Second, you can use the lookup feature using __in : 其次,您可以使用__in使用查找功能:

ans = Entry.objects.filter(blogs__in=blogs)

So your final views.py could look like this: 因此,您的最终views.py可能如下所示:

def something(request):
    blogs = Blog.objects.filter(id__range=[0, 10])
    ans = Entry.objects.filter(blogs__in=blogs)
    print(ans)
    #some other work.

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM