1

我正在从我的数据库中搜索一些东西的功能。 我不确定返回结果的方式。queryset Django?小问题

它不出来任何东西..

但CMD,我可以看到谁搜查Mother_language用户的电子邮件,因为

print(MyUser.objects.filter(Mother_language__contains=Mother_language)) 

鉴于

这是我的模型

class MyUser(AbstractBaseUser): 
    email = models.EmailField(
     verbose_name='email address', 
     max_length=255, 
     unique=True, 
    ) 
    username = models.CharField(max_length = 30, unique = True, null = False) 

    Nationality =models.CharField(max_length = 30,choices= Country_choice,null = False) 
    Mother_language = models.CharField(max_length = 30,choices= Language_list,null = False) 
    Wish_language =models.CharField(max_length = 30,choices= Language_list,null = False) 
    is_active = models.BooleanField(default=True) 
    is_admin = models.BooleanField(default=False) 
    picture = models.ImageField(upload_to='profile_images',blank=True) 
    objects = MyUserManager() 

    USERNAME_FIELD = 'email' 
    REQUIRED_FIELDS = ['username','Nationality','Mother_language','Wish_language','picture'] 

这是我的表格

class SearchForm(forms.ModelForm): 
    class Meta: 
    model = MyUser 
    fields = ('Mother_language','Nationality') 

这是我的看法

def index(request): 
    print "entered" 
    form = SearchForm(request.POST or None) 

    if request.method == "POST" and form.is_valid(): 
     Mother_language = form.cleaned_data['Mother_language'] 
     Nationality = form.cleaned_data['Nationality'] 
     MyUser.objects.filter(Mother_language__contains=Mother_language) 
     MyUser.objects.filter(Nationality__contains=Nationality) 
     print(MyUser.objects.filter(Mother_language__contains=Mother_language)) 


     return render(request, "LanguageExchange/index.html", { "MyUser": MyUser}) 
print(form.as_table()) 
return render(request, "LanguageExchange/index.html", { "form": form,}) 

这是我的index.html

<form id="form" method="get" action="{% url 'index' %}"enctype="multipart/form-data"> 
{% csrf_token %} 
{{form.as_table}} 
<input type="submit" value="submit" /> 
<br> 

回答

0

你忘了查询集的结果捕捉到一个局部变量和发送在上下文中,而不是MyUser - 类本身。

变化

MyUser.objects.filter(Mother_language__contains=Mother_language) 

myuser_qs = MyUser.objects.filter(Mother_language__contains=Mother_language) 

然后

return render(request, "LanguageExchange/index.html", { "MyUser": MyUser}) 

return render(request, "LanguageExchange/index.html", { "MyUser": myuser_qs}) 
+0

感谢,但它不工作.. – user7718204

+0

Wait..where你在模板中显示查询集的内容? – karthikr

+0

哦谢谢,我终于明白了。 – user7718204