Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-Q和request.POST数据_Python_Django_Django Q - Fatal编程技术网

Python Django-Q和request.POST数据

Python Django-Q和request.POST数据,python,django,django-q,Python,Django,Django Q,我有一个正在使用Django和Django-Q的预算应用程序。我想创建一个计划,根据我创建的Django-Q计划自动发布费用。我的问题是理解在Djano-Q时间表中使用三个位置参数的逻辑 三个位置参数是request、budget\u id和category\u id 我想将数据发布到我的add_automatic_expense视图,该视图将基于表单数据创建初始费用,然后创建一个Django-Q计划,以触发每月使用相同数据运行的费用创建 有人能帮我解释一下这个过程吗?谢谢 views.py d

我有一个正在使用Django和Django-Q的预算应用程序。我想创建一个计划,根据我创建的Django-Q计划自动发布费用。我的问题是理解在Djano-Q时间表中使用三个位置参数的逻辑

三个位置参数是request、budget\u id和category\u 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]错误格式错误的节点或字符串:


我想出来了。在我的“添加自动费用”功能中,我将创建的计划更改为如下所示:

Schedule.objects.create(func='budgeteer.views.add_auto_expense', name=None, hook=None, schedule_type='O', minutes=None, repeats=-1,
    kwargs={"amount":request.POST.get('amount'), "description": request.POST.get('description'), "transaction_date":request.POST.get('transaction_date'),
    'expense_frequency_choice_field':request.POST.get('expense_frequency_choice_field'),'automatic_payment':request.POST.get('automatic_payment'), 'categories_id':request.POST.get('categories')})
然后,我创建了另一个名为add_auto_expense的函数视图,其位置值为**kwargs。这使我能够访问日程表中的所有数据

def add_auto_expense(**kwargs):
    new_expense = Expense.objects.create(amount=kwargs['amount'], description=kwargs['description'],
    transaction_date=kwargs['transaction_date'], categories_id=106)

我想出来了。在我的“添加自动费用”功能中,我将创建的计划更改为如下所示:

Schedule.objects.create(func='budgeteer.views.add_auto_expense', name=None, hook=None, schedule_type='O', minutes=None, repeats=-1,
    kwargs={"amount":request.POST.get('amount'), "description": request.POST.get('description'), "transaction_date":request.POST.get('transaction_date'),
    'expense_frequency_choice_field':request.POST.get('expense_frequency_choice_field'),'automatic_payment':request.POST.get('automatic_payment'), 'categories_id':request.POST.get('categories')})
然后,我创建了另一个名为add_auto_expense的函数视图,其位置值为**kwargs。这使我能够访问日程表中的所有数据

def add_auto_expense(**kwargs):
    new_expense = Expense.objects.create(amount=kwargs['amount'], description=kwargs['description'],
    transaction_date=kwargs['transaction_date'], categories_id=106)