我是django的新手,对如何在某种情况下使用这些观点提出疑问:
我有一个加载轨道文件的视图。轨道按不同方式分解,我想在地图中逐个显示每个轨道。用户必须填写具有该方式特征的表单。当一个结束时,我想加载下一个直到它完成。我不确定我必须使用的结构。
def acoplar_track(request, track_id):
track = get_object_or_404(Track, id=track_id)
x=Xarxa(track.zona.nom) #an object from a custom library
...
#split the track in different ways
...
newWays = x.getTrackWays(); # a list with the ways ids
for way in newWays:
emplenarWay(wId,x) #Function that have to show the way in a map and alow the user to fill the form.
return render_to_response('principal/inici.html', context_instance = RequestContext(request)) #final template
def carregar_way(request, x, way_id):
if request.method=='POST':
formulari = WayForm(request.POST, request.FILES)
if formulari.is_valid():
x.processData(formulari.descripcio, formulari.tipus)
# something for render de form again or come back to the loop of the previous function... NO IDEA!!
else:
formulari = WayForm()
mapFeatures = x.getMapFeatures(way_id)
return render(request,'principal/WayForm.html',
{'formulari':formulari, 'mapFeatures'=mapFeatures})
forms.py
CHOICES = (('1','Pista',),('2','Corriol',))
class WayForm(forms.Form):
descripcio = forms.Textarea()
tipus = forms.ChoiceField(
widget=forms.RadioSelect, choices=CHOICES)
可能是这样的吗?
答案 0 :(得分:0)
我假设你想要显示一个共同的形式(每次都是相同的字段)和一个人跟随的轨道的不同图像。我首先定义form class object.然后创建两个模板,一个是您在表单字段上循环以显示的基础,第二个是您的图像,并从基本模板扩展。然后在您的视图中,您要么向模板显示数据(基本表单和特定的轨道图像),要么正在处理表单数据并将用户移动到轨道的下一部分。有关如何在视图中处理表单的详细信息,请参阅forms in views。使用render_to_response和轨道地图的ID来设置要渲染的下一页。