这是我的views.py
from django.shortcuts import render
from .reisplanner import *
def home(request):
return render(request, 'home.html', {})
def reisplanner(request):
if request.method == 'POST':
form = reisplannerForm(request.POST)
if form.is_valid():
beginstation = form.cleaned_data['beginstation']
eindstation = form.cleaned_data['eindstation']
print(beginstation, eindstation)
else:
form = reisplannerForm()
return render(request, 'reisplanner.html', {'form': form})
这是forms.py
from django import forms
class reisplannerForm(forms.Form):
beginstation = forms.CharField(required=True)
eindstation = forms.CharField(required=True)
我想使用reisplanner.py
def reisplanner():
#
# use the values of the form here
#
我实际上已经尝试了一切,这是一个学校项目,并且已经尝试修复了大约2天,但是没有结果。
如果你们能帮助我,那太好了。如何获取表单值到python脚本?
答案 0 :(得分:0)
在reisplanner.py
def my_reisplanner(form):
beginstation = form.cleaned_data['beginstation']
eindstation = form.cleaned_data['eindstation']
# Do somthing with the values
在views.py
from django.shortcuts import render
from .reisplanner import *
def home(request):
return render(request, 'home.html', {})
def reisplanner(request):
if request.method == 'POST':
form = reisplannerForm(request.POST)
if form.is_valid():
beginstation = form.cleaned_data['beginstation']
eindstation = form.cleaned_data['eindstation']
print(beginstation, eindstation)
# You can call this function because you imported it in line 2
my_reisplanner(form)
else:
form = reisplannerForm()
return render(request, 'reisplanner.html', {'form': form})
这里唯一的问题是要调用的函数的名称。如果对视图函数和过程函数使用相同的名称,则导入时会出现问题。
在上一代码段中,我将过程函数重命名为my_reisplanner
,以避免发生冲突。如果您不想(或无法)重命名流程功能(请参阅下文),还有其他解决方案。
通常,不鼓励这种导入
from .reisplanner import *
,因为您无法控制导入的内容。喜欢这个:
from .reisplanner import reisplanner as reisplanner_name_alias
# [...]
# Call reisplanner using local alias created from imports
reisplanner_name_alias()
或者简单地
from . import reisplanner
# [...]
# Call reisplanner using full modul dotted path
reisplanner.reisplanner()