나는 셀러리 작업을하려고, 코드는 다음과 같습니다.order_create() 정확히 2 인수 (주어진 1)
task.py
from .models import OrderItem
from cart.cart import Cart
from .forms import OrderCreateForm
@task(name="create_order")
def create_order(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart:
try:
OrderItem.objects.create(order=order,
product=item['product'],
price=item['price'],
quantity=item['quantity'])
except:
pass
cart.clear()
return None
else:
form = OrderCreateForm()
return None
views.py
from .models import OrderItem, Order
from cart.cart import Cart
from .tasks import create_order
def order_create(request, order_id):
order = Order.objects.get(id=order_id)
cart = Cart(request)
create_order.delay(order.id)
return render(request,'orders/order_created.html', {'cart': cart, 'order': order})
urls.py
from .views import order_create
urlpatterns = [
url(r'^create/$',order_create, name='order_create'),
]
나는 오류가 발생하고 코드를 실행
'order_create()는 정확히 2 소요 인수 (1 주어진) '. 누군가가 나를 해결할 수 있기를 바랍니다. 고맙습니다.다음은 주문이 생성 된 후 메일을 보내는 작업 코드이지만 전체보기 기능을 셀러리 작업으로 변경하려고합니다. URL 아래에, 당신이보기
url(r'^create/(?P<order_id>\w+)/$',order_create, name='order_create'),
에 매개 변수로 ORDER_ID 전달하고 URL로 ORDER_ID을 통과해야 놓친에
@task(name="send_mail_to_custormer")
def order_created(order_id):
order = Order.objects.get(id=order_id)
subject = 'Order nr. {}'.format(order.id)
message = 'Dear {} {},\n\nYou have successfully placed an order. Your order id is {}'.format(order.first_name,
order.last_name, order.id)
from_email = settings.EMAIL_HOST_USER
to_email = [order.email]
mail_sent = send_mail(
subject,
message,
from_email,
to_email,
fail_silently=False
)
return mail_sent
views.py
def order_create(request):
cart = Cart(request)
if request.method == 'POST':
form = OrderCreateForm(request.POST)
if form.is_valid():
order = form.save()
for item in cart:
try:
OrderItem.objects.create(order=order,
product=item['product'],
price=item['price'],
quantity=item['quantity'])
except:
pass
cart.clear()
order_created.delay(order.id)
return render(request,'orders/order_created.html', {'cart': cart, 'order': order})
else:
form = OrderCreateForm()
return render(request, 'orders/order_create.html', {'cart': cart, 'form': form})
urls.py 파일을 볼 수 있습니까? – wpercy
이것은 작업과 관련이없는 것 같습니다. 'order_create'는 뷰 자체입니다. –