0

我是 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})

表格.py

CHOICES = (('1','Pista',),('2','Corriol',))             
class WayForm(forms.Form):
    descripcio = forms.Textarea()
    tipus = forms.ChoiceField(        
        widget=forms.RadioSelect, choices=CHOICES)

可能是这样的吗?

4

1 回答 1

0

我假设您想要显示一个通用表单(每次相同的字段)和某人正在跟踪的轨道的不同图像。我将从定义表单类对象开始。然后创建两个模板,一个是您在表单字段中循环显示的基础,第二个是您的图像,您从基础模板扩展。然后在您的视图中,您要么向模板显示数据(基本表单和特定轨道图像),要么正在处理表单数据并将用户移动到轨道的下一部分。有关如何在视图中处理表单的详细信息,请参阅视图中的表单。使用您的 render_to_response 和轨迹图的 ID 来设置要渲染的下一页。

于 2013-06-10T18:59:52.533 回答