我正在编写我的第一个django应用程序而且我遇到了麻烦。这是我的想法:
我以不同的方式分割曲目,我需要在带有表单的html页面中显示每个曲目。用户必须填写关于该部分轨道的表格,然后我需要再次显示表格的下一个方式,直到完成。我不知道如何做这个循环,但我已经尝试过这个,我的问题是我不知道如何将我需要的de变量从GET情境传递给POST。
def acoplar_track(request, track_id, ):
if request.method=='POST':
formulari = WayForm(request.POST, request.FILES)
if formulari.is_valid():
x.addFeatures(newWays_l[cont], formulari.descripcio, formulari.tipus)
x.saveCityToFile('/var/www/tottrack/media/zones/city/'+track.zona.nom)
if cont+1==len(newWays_l):
return render_to_response('principal/inici.html', context_instance=RequestContext(request))
else:
cont = cont+1
formulari = WayForm()
lon, lat, zoom = x.getWayMapSettings(newWays_l[cont]) #variables to show the map
return render(request,'principal/wayForm.html',
{'formulari':formulari, 'lat':lat, 'lon':lon, 'zoom':zoom})
else:
track = get_object_or_404(Track, id=track_id) # obte el track i la zona corresponent al track
x=Xarxa('/var/www/tottrack/media/zones/city/'+track.zona.nom) # crea una Track() mitjansant el fitxer on s'ha guardat la zona per poder acoplar-hi les noves dades
nomTrack = track.track.name.split('/')[-1:] # aconsegueix nomes el nom del fitxer, sense /tracks/gpx/
x.setZoneBB(track.zona.latSud, track.zona.lonOest, track.zona.latNord, track.zona.lonEst)
x.uploadTrack(nomTrack[0]) # fusiona el track a la city
newWays_l = x.getTrackWays() # obte les ids dels nous camins que s'afegiran
if not newWays_l:
return render_to_response('acoplarTrackRepetit.html')
else:
cont = 0
formulari = WayForm()
lon, lat, zoom = x.getWayMapSettings(newWays_l[0]) #variables to show the map
return render(request,'principal/wayForm.html',
{'formulari':formulari, 'lat':lat, 'lon':lon, 'zoom':zoom})
forms.py
CHOICES = (('1','Pista',),('2','Corriol',))
class WayForm(forms.Form):
descripcio = forms.Textarea()
tipus = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES)
感谢您的帮助!
答案 0 :(得分:1)
尝试在if request.method == POST之前输入GET方法的代码。像这样:
def acoplar_track(request, track_id, ):
//Code for GET here
if request.method == POST:
//Code for POST here
//return render GET method
答案 1 :(得分:0)
让我重新解释一下你的问题,以确保我理解:
在保存模型之前,您希望通过多个页面/表单收集一些信息。
这在以下文档中有所介绍:
https://docs.djangoproject.com/en/1.5/ref/contrib/formtools/form-wizard/
基本上,在早期页面中收集的信息实际上是保存在数据库中但在不同的地方,直到您拥有保存您感兴趣的模型所需的所有信息。然后,您可以保存模型并删除所有缓存的响应。