在我的Django项目中,我有一个名为bills的文件夹。我将在django项目中创建的每个账单保存在此文件夹中。文件名是这样的: HK_Smith_2014.pdf 是否可以在此文件夹中浏览搜索Smith(在后台)并在我的模板中显示该文件的链接。应该可以点击此链接,然后打开文件。
答案 0 :(得分:0)
如果要将文件保存为模型中的FileField,您应该可以在模板中访问它,如下所示:
<a href="{{ my_bill.url }}">{{ my_bill.name }}</a>
但是,对于搜索功能,您需要做更多的工作。您必须制作一个表单,该表单接受特定账单的输入,然后使用该信息在您的模型中搜索特定账单。一种方法是:
class SearchForm(forms.Form):
search_term = forms.CharField()
def search(request):
form = SearchForm(request.POST)
if form.is_valid():
term = form.cleaned_data['search_term'].lower()
for obj in Bill.objects.all():
if term in obj.name.lower():
return HttpResponseRedirect(reverse('search:results', args=(obj.id,)))
else:
form = SearchForm()
return render(request, 'search/search.html', {'form':form})
当然,您必须拥有一个结果视图,该结果视图将bill_id作为参数,并匹配search.html模板。您可以通过多种方式对此进行扩展(例如,如果您无法在任何对象中找到搜索词的实例,则返回错误)。但这是一个解决方案的骨架。