【发布时间】:2021-01-22 21:45:23
【问题描述】:
我正在开发一个预算应用程序,并使用 Django 和 Django-Q。我想创建一个时间表,以根据我创建的 Django-Q 时间表自动发布费用。我遇到的问题是理解在我的 Djano-Q 计划中使用三个位置参数的逻辑。
三个位置参数是 request、budget_id 和 category_id。
我想将数据发布到我的 add_automatic_expense 视图,该视图将根据表单数据创建初始费用,然后创建 Django-Q 计划以触发费用创建,以每月运行相同的数据。
任何人都可以帮助阐明这个过程吗?谢谢。
views.py
def add_automatic_expense(request, budget_id, category_id):
get_budget = Budget.objects.get(id=budget_id)
get_category = Category.objects.get(id=category_id)
form = ExpenseEventForm()
if request.method == "POST":
Schedule.objects.create(func='budgeteer.views.add_automatic_expense', args='request, budget_id, category_id',repeats=-1, schedule_type="D")
form = ExpenseEventForm(request.POST)
expense = form.save(commit=False)
expense.amount = request.POST.get('amount')
expense.description = request.POST.get('description')
expense.transaction_date = request.POST.get('transaction_date')
expense.categories_id = category_id
expense.automatic_payment = True
expense.save()
expense_id = Expense.objects.last()
get_budget.expense_set.add(expense_id)
get_category.category_expense.add(expense_id)
return redirect('view_expenses', budget_id=budget_id, category_id=category_id)
else:
form = ExpenseEventForm()
return render(request, 'budgeteer/add_automatic_expense.html', {'form':form})
当我使用表单数据发布到该函数时,它会增加初始费用,但是当我尝试在此之后运行我的 QCluster 时,我收到以下错误:
14:34:39 [Q] 错误的节点或字符串格式错误:<_ast.name object at>
【问题讨论】: