如何在Django中设置AJAX调用的视图/路径?

问题描述 投票:0回答:3

我正在使用Django和Python 3.7。我的项目中有这个文件

web/views/tax_calculator.py

它由一个单一的功能组成(我省略了进口)......

def calculate_taxes(request):
    state = request.GET.get('state', None)
    gross_income = request.GET.get('gross', None)
    owner_salary = request.GET.get('salary', None)

    data = {
        'sole_pr_taxes': TaxCalculatorService.calc_sole_pr_taxes(state, gross_income),
        's_corp_taxes': TaxCalculatorService.calc_s_corp_taxes(state, gross_income, owner_salary),
    }
    return JsonResponse(data)

在我的./myproject/urls.py文件中

from django.contrib import admin
from django.urls import path
from web.views import *

urlpatterns = [
    path(r'^ajax/calculate_taxes/$', tax_calculator.calculate_taxes, name='calculate_taxes'),
]

但这会导致错误

    path(r'^ajax/calculate_taxes/$', tax_calculator.calculate_taxes, name='calculate_taxes'),
NameError: name 'tax_calculator' is not defined

引用我的视图/ AJAX调用的正确方法是什么?

ajax django python-3.x django-views django-urls
3个回答
0
投票

尝试将urls.py代码更改为以下代码

from django.contrib import admin
from django.urls import path
from web.views.tax_calculator import calculate_taxes

urlpatterns = [
    path(r'^ajax/calculate_taxes/$', calculate_taxes, name='calculate_taxes'),
]

0
投票

通常calculate_taxes将在web / views.py中定义,然后它可以简称为calculate_taxes。


0
投票

web/views文件中的__init__.py目录中,你必须像这样导入tax_calculator.py

# __init__.py
from . import tax_calculator

如果您没有__init__.py文件,则必须创建它。

© www.soinside.com 2019 - 2024. All rights reserved.