如何在 Django 中设置 view/path 到 AJAX 调用?
How do I set up a view/path to an AJAX call in Django?
我正在使用 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
引用我的 view/AJAX 调用的正确方法是什么?
通常calculate_taxes会定义在web/views.py中,那么可以简单的引用为calculate_taxes.
在 web/views
目录中的 __init__.py
文件中,您必须像这样导入 tax_calculator.py
:
# __init__.py
from . import tax_calculator
如果您没有 __init__.py
文件,则必须创建它。
尝试将您的 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'),
]
我正在使用 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
引用我的 view/AJAX 调用的正确方法是什么?
通常calculate_taxes会定义在web/views.py中,那么可以简单的引用为calculate_taxes.
在 web/views
目录中的 __init__.py
文件中,您必须像这样导入 tax_calculator.py
:
# __init__.py
from . import tax_calculator
如果您没有 __init__.py
文件,则必须创建它。
尝试将您的 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'),
]