在django/python中将字符串与数据库匹配

在django/python中将字符串与数据库匹配,python,django,django-views,Python,Django,Django Views,一个用户将出现在网站上并填写登记表。注册表格下面显示了一个问题,您想学习哪些科目 用户回答-我想学习环境研究 sentence="I want to study Environmental Studies" 我有2个数据库显示在下面。现在,用户的答案应该与一个最大精度的数据库表匹配,应该选择与最大精度匹配的数据库表。我无法精确地匹配 Class_A id subject 1 Environment

一个用户将出现在网站上并填写登记表。注册表格下面显示了一个问题,您想学习哪些科目

用户回答-我想学习环境研究

 sentence="I want to study Environmental Studies"
我有2个数据库显示在下面。现在,用户的答案应该与一个最大精度的数据库表匹配,应该选择与最大精度匹配的数据库表。我无法精确地匹配

Class_A id subject 1 Environmental Studies 2 Physical education Class_B Id subject 1 Social Science 2 Computer Management 3 Hindi
该系统运行良好,在数据库表中添加了一个单词subject,如印地语、英语(“我想学习印地语”)。但当在数据库表中添加2个单词或3个单词的主题时,如体育或环境研究。那么这个系统就不工作了。比如,如果用户填写注册表时写下“我想学习环境研究”,那么它就不匹配了,因为有两个单词主题。

您可能想在查询中使用。您为什么创建一个表单,希望用户键入一个句子,而不是从列表中选择?
def submission(request):
    obj = Registration.objects.latest('id')
    obj1 = Registration.objects.filter(name__contains=obj1)
    for a in obj1:
        sentence= a.subject
        word = sentence.split()
        class_a=class_A.objects.all()
        class_b=class_B.objects.all()

        if Class_a.filter(subject__in=word).exists():
            return render(request,'data/submission.html',{'Class':'Your Are in Class A'})
        elif Class_b.filter(subject__in=word).exists():
            return render(request, 'data/submission.html', {'Class': 'You are in Class B'})