我有一个用于订购零件的Web应用程序,我想在用户订购零件时包括一封电子邮件。我在将电子邮件功能添加到基于功能的视图时遇到了麻烦。
我有一个用于保存订单数据的现有功能,我想将电子邮件功能简单地添加到同一视图中。当我尝试直接添加它时,我不断收到有关不一致空格的错误消息。因此,我在新订单视图的下方创建了一个新的电子邮件功能,但是我不知道如何将某些参数从一个功能传递给另一个功能。
这很接近,但是当我调用New_Order函数时,它会为未定义的order_instance引发错误。
Views.py
const color = {
"connected":"green",
"connection failure": "red"
};
const applyColors = (text) => {
let c = "blue"; //default color
Object.keys(color).map(function(key, index){
if(text.contains(key)) {
c = color[key];
}
});
return `<span style="color:${c}">${text}</span>`;
}
console.log(applyColors("connected"))
我可以使用一个组合函数或两个函数并将参数从一个传递到下一个。如果由于某种原因我无法将步骤添加到一个函数中,您可以解释原因吗?我仍在学习,并且我肯定在这方面缺少一些东西。
谢谢 最高
答案 0 :(得分:1)
向Order_Email添加参数:
def Order_Email(order_instance):
并在调用函数时传递值:
return Order_Email(order_instance)
因此您的代码将如下所示:
@login_required
def New_Order(request):
if request.user.userprofile.shipment_access:
if request.method == 'POST':
form = OrderForm(request.POST)
if form.is_valid():
order_instance = form.save(commit=True)
order_instance.save()
return Order_Email(order_instance)
else:
form = OrderForm()
return render(request, 'app/New_Order.html', {'form': form})
else:
raise PermissionDenied
def Order_Email(order_instance):
subject = "Part Order" + order_instance.id
orderNum = order_instance.id
from_email = settings.EMAIL_HOST_USER
to_email = ['dummyemail@gmail.com']
message = order_instance
send_mail(subject=subject, from_email=from_email, recipient_list=to_email, message=message, fail_silently=False)
return HttpResponseRedirect('/Orders')
答案 1 :(得分:0)
这是一个完全标准的函数,只需像往常一样将参数传递给它即可。 (还要注意,该调用必须在if
块内。)
if form.is_valid():
order_instance = form.save(commit=True)
order_instance.save()
return Order_Email(order_instance)
...
def Order_Email(order_instance):