我有一个管理增值税的 django 应用程序。例如,它可以计算来自欧盟的所有销售的增值税。
vat = purchases[0].vat.vat
eu_sales = Sale.objects.filter(country_type='2')
eu_amount = (eu_sales.aggregate(price = Sum('amount'))['price']) * vat/100
Run Code Online (Sandbox Code Playgroud)
然而,今天我将文件复制到另一台机器上。然后我收到一个错误
unsupported operand type(s) for *: 'NoneType' and 'Decimal'
我意识到我收到此错误是因为尚未eu_amount存储任何值。在 overwords 中,没有 val ,eu_amount因此它不能乘以十进制值。这是我的模板中的内容
{{eu_amount}}
Run Code Online (Sandbox Code Playgroud)
有没有办法过滤这个模板标签?我想说的是,如果 value 的值为 None(或 Null),则其值为 0。
我使用mysql数据库后端对Django应用程序进行了一些更改.我一直在收到这个错误.
(1048, "Column 'current_item_status_date' cannot be null")
我试图通过使用ALTER TABLE命令使其为NULL,但这不起作用.说语法无效.
ALTER TABLE tiptop_items MODIFY current_item_status_date null;
我有一个视图和模板,显示项目类型的列表.这没关系,但不是为该客户端显示所有不同类型的项目.我想要做的是单独显示类型列表.
例如,如果一个Item的类型存储了"General".我想显示所有类型只有"常规"的项目.
查看
def client_summary(request, client_id):
client = None
items = None
try:
client = models.Client.objects.get(pk = client_id)
items = client.storageitem_set.all()
total_items = items.count()
except:
return HttpResponse(reverse(return_clients))
return render_to_response('client_summary.html', {'items':items, 'total_items':total_items, 'client':client}, context_instance = RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
模板
Summary for {{client.name}}
Total Number of Items: {{total_items}}
{%for item in items}
{{item.type}}
{%endfor%}
Run Code Online (Sandbox Code Playgroud) 很快的问题.我的模板中有一个像这样的href链接.
<a href={% url tiptop.views.client_items name.pk %}>add item</a>
Run Code Online (Sandbox Code Playgroud)
这有效但是如果我想将它创建为按钮由于某种原因它不起作用.
<input type="button" on_click="window.location.href='{% url tiptop.views.client_items name.pk %}></a>'" value="Add item">
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它不起作用.基本上,按钮显示,但当我点击按钮时,它没有任何作用.
我在视图中有一个名为client_items的项目列表.我希望能够使用变量items_list`,这是另一个在client_items中称为edit_order的视图.那么有没有办法从不同的视图调用变量?(从另一个视图导入变量并且能够在另一个视图中使用此变量)我不能只在client_items视图中写入它,因为它需要order_no扩充.
编辑:这是我最新的观点.我尝试创建另一个名为items_in_edit_order的视图.此时我得到`order_no未定义.
def items_in_edit_order(order_no):
order = models.Order.objects.get(pk = order_no)
return order
def client_items(request, client_id = 0):
client = models.Client.objects.get(pk = client_id)
items = client.storageitem_set.all()
order = items_in_edit_order(order_no)
return render_to_response('items.html', {'items':items, 'client':client, 'order':order}, context_instance = RequestContext(request))
Run Code Online (Sandbox Code Playgroud) 我有一个Django应用程序打印出一个pdf文件.我想知道如何更改pdf文件输出名称.这是我的看法.
def write_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
return HttpResponse(result.getvalue(), mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=Client_Summary.pdf'
return response
return HttpResponse('We had some errors<pre>%s</pre>' % cgi.escape(html))
def client_summary_pdf(request, client_id):
client = models.Client.objects.get(pk = client_id)
items = client.storageitem_set.all()
return write_pdf('client_summary.html',{
'pagesize' : 'A4',
'client':client,
'items':items})
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我试过说response['Content-Disposition'] = 'attachment; filename=Client_Summary.pdf',但这不起作用.它基本上打开/保存没有名称的pdf文件.