我一直在努力我认为这是我的骨干疏忽。我有一个表单,该表单将输入输入到查询我拥有的某些SQL表的视图中,并返回一个包含每个表中的列的列表**。
正在发生的奇怪的事情是我的列表显示为
this.requestInformation = function() {
return $http({
method: 'GET',
url: 'Your url'
}).then(function (response) {
console.log(response.status)
return response;
})
}
每个列表对象周围的括号。谁能告诉我如何避免这种情况?
非常感谢。
**我正在使用此列表而不是ForeignKeys来组合这些表,因为我花了很长时间才能使用SQLAlchemy和Postgres正确地填充我的SQL数据库,并读到它存在已知问题,所以我放弃了该方法。
views.py
<QuerySet{[ ]}>
result.html
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect, HttpResponse, Http404
from django.views import generic
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy
from .models import *
from .forms import QuoteForm, RfqForm
def bom_result(request):
if request.method == 'POST':
form = RfqForm(request.POST)
if form.is_valid():
bom_list = []
rfq = {}
rfq_search = form.cleaned_data['rfq_entered']
rfq['rfq_num'] = rfq_search
rfq['bom'] = Quotereq.objects.values('bom_entered').filter(rfq_num__exact=rfq_search)
rfq['part_num'] = Bom.objects.values('partnum').filter(bom__exact='07-00-000019')
bom_list.append(rfq)
context = {'bom_list': bom_list}
return render(request, 'quote/result.html', context)
else:
return HttpResponse("<h1>Something Went Wrong</h1>")
else:
form = RfqForm()
context = {'form': form}
return render(request, 'quote/lookup.html', context)
这是该表输出的内容:
答案 0 :(得分:1)
如果我们看看part_num
是什么,我们会看到:
rfq['part_num'] = Bom.objects.values('partnum').filter(bom__exact='07-00-000019')
这是QuerySet
,QuerySet
是某种查询,会导致一组对象。您可以使用Django ORM(在此处执行操作)来构造这样的QuerySet
。
为了获取QuerySet
中的元素,您可以遍历这些元素,例如,对它们进行单独处理。
在模板中,我们可以例如编写:
<td>
<ul style="list-style-type:none">
<li>{% for part in bom.part_num %} {{ part.part_num }} {% endfor %}</li>
</ul>
</td>
因此,我们遍历QuerySet
,然后每次获取一个字典(包装在QuerySet
中,然后在字典中渲染与'part_num'
键对应的值字典。当然,我们可以使其更加复杂(例如,使用HTML标记指令,例如{% for part in bom.part_num %} <b>{{ part.part_num }}</b> {% endfor %}
以粗体显示。
我使用此列表而不是ForeignKeys来组合这些表,因为我花了很长时间才使用SQLAlchemy和Postgres使我的SQL数据库正确填充,并且读到它存在已知问题,所以我放弃了该方法
我真的建议使用ForeignKey
,ManyToManyField
等来表示实体之间的关系。 Django不仅允许您进行更具表达力的查询,而且还将向数据库添加约束,以便与ForeignKey
对应的列将始终指向它们指向的表的主键,等等。例如,如果您删除引用的实体,则可以定义触发器的操作(删除相关对象,将外键columnn设置为NULL
,等等)。也许遵循Django tutorial可以提供一些必要的信息以继续。
当然,您可以按照自己喜欢的方式自由设计和实施项目,但是我的个人经验是,最终可能会带来更多麻烦。