0
아래 코드가 있습니다. OfferAdmin에 'send_offer'동작이 있습니다.Django 관리자 작업이 작동합니다.
기본적으로 작업은 사용자가 완료되면 사용자에게 전자 메일이 전송되는 양식을 표시합니다.
그러나 아래 코드는 저에게 적합하지 않습니다. 제안 옆에있는 확인란을 클릭하고 장고 관리자의 드롭 다운 메뉴에서 "제안 이메일 보내기"를 선택하면 양식이 표시되지만 사용자에게 보내는 이메일은 전송되지 않습니다.
기본적으로 request.method == 'POST'행 아래의 코드 부분이 작동하지 않습니다.
어떻게해야합니까?
class OfferAdmin:
...
class OfferForm(forms.Form):
title = forms.CharField(max_length=100)
image_link = forms.CharField(max_length=100)
list_price = forms.FloatField()
discount_price = forms.FloatField()
exclusive_price = forms.FloatField()
comments = forms.CharField(widget=forms.widgets.Textarea())
def send_offer(self, request, queryset):
form = None
if request.method == 'POST':
form = self.OfferForm(request.POST)
if form.is_valid():
for bid in queryset:
title = form.cleaned_data['title']
image_link = form.cleaned_data['image_link']
list_price = form.cleaned_data['list_price']
discount_price = form.cleaned_data['discount_price']
exclusive_price = form.cleaned_data['exclusive_price']
comments = form.cleaned_data['comments']
form_params = {
'title': title,
'image_link': image_link,
'list_price': list_price,
'discount_price': discount_price,
'exclusive_price': exclusive_price,
'comments': comments
}
params = {
'obj': bid,
'form': form_params
}
rts = render_to_string
subject = rts(
'shopper/email/email-offer-subject.txt', params)
text = rts('shopper/email/email-offer.txt', params)
html = rts('shopper/email/email-offer.html', params)
bid.user.send_email(subject, text, html)
self.message_user(request, "Successfully sent email")
return HttpResponseRedirect(request.get_full_path())
if not form:
for obj in queryset:
data = {
'title': obj.product.title,
'image_link': obj.image_link,
'list_price': obj.list_price,
'discount_price': obj.discount_price,
'exclusive_price': obj.exclusive_price,
}
form = self.OfferForm(data)
return render_to_response(
"shopper/admin/offer_form.html", {
'bids': queryset, 'offer_form': form},
context_instance=RequestContext(request))
send_offer.short_description = "Send offer email"
return HttpResponseRedirect (request.get_full_path())는 for 루프 외부에 있어야합니다. 'form_params'를 루프 밖에서 초기화하는 것이 더 좋을 것입니다. 왜냐하면 값이 쿼리 세트와 독립적이기 때문입니다. – pankaj28843