Django模型如何与非Django文件交互
我是Django的新手,在实践中学习 我最初的web应用程序只使用Django模型如何与非Django文件交互,django,django-models,django-forms,Django,Django Models,Django Forms,我是Django的新手,在实践中学习 我最初的web应用程序只使用view.py、base.html和一个非Django python文件es.py连接到NoSQL数据库(Elasticsearch)来搜索索引B。我在base.html中做了大部分前端工作 该应用程序现在需要基于索引A中的字段设置一些相关下拉列表,然后启用按所选值筛选的索引B上的搜索。因此,这些值需要有点“全局性” 一小段 新选择函数的base.html <form class="indexA-selection">
view.py
、base.html
和一个非Django python文件es.py
连接到NoSQL数据库(Elasticsearch)来搜索索引B。我在base.html
中做了大部分前端工作
该应用程序现在需要基于索引A中的字段设置一些相关下拉列表,然后启用按所选值筛选的索引B上的搜索。因此,这些值需要有点“全局性”
一小段
新选择函数的base.html
<form class="indexA-selection">
<input list="site">
<datalist id="site">
<option value="aa">
<option value="bb">
<option value="cc">
<option value="dd">
</datalist>
<button class="btn" type="submit">Show Result</button>
</form>
<br>
<form class="form-inline">
<input
class="form-control mr-sm-2"
type="query" placeholder="query"
aria-label="query"
name = 'query'
value = "">
<button class="btn" type="submit">Search</button>
</form>
我试图创建选择/下拉列表,但Django在.html
中似乎不支持它们。我搜索发现,似乎我必须使用models.py
我阅读了一些示例,但找不到models.py
如何与非Django python文件交互
有没有一个例子可以说明这一点?为项目启用结构的最简单方法是什么?谢谢。您可以通过
{%}
和{{{}
标记访问HTML模板中视图的上下文
看
将数据列表更改为类似以下内容(假设类别具有名称和id字段):
{allcate%中类别的百分比}
{{category.name}
{%endfor%}
也考虑选择一个更冗长的名字,比如AlLub类< /P>你能发布一些你已经尝试过的代码吗?@ NigoGriffiion用当前的代码更新了我所用的代码。我仍然不确定你想要做什么。是否要在html中的数据列表中包含allcate as选项?是。开始选择/下拉列表只有4个可能的值,所以我只是在html中列出了它们。我计划使用allcate中的值创建其他依赖下拉列表并用JavaScript填充。我不明白“非Django Python文件”是什么。Django Python和非Django Python之间没有区别。
def search_index(request):
results = []
search_term = ""
v_site=""
if request.GET.get('query'):
search_term = request.GET['query'] #this is the original search
if request.GET.get('site'):
v_site = request.GET['site']
print(v_site) #no value gets printed,so I don't think value in html is passed
allcate=categories(v_site) #function from non-Django py file.
#If v_site is passed, this will return a nested dictionary for dependent drop-downs
print(allcate)
results = esearch(query=search_term) #function from non-Django py file
print(results)
context = {'results': results, 'count': len(results), 'search_term': search_term,'allcate':allcate}
return render(request, 'esearch/index.html', context)
<datalist id="site">
{% for category in allcate %}
<option value="{{category.id}}">
{{ category.name }}
</option>
{% endfor %}
</datalist>