2013-01-18 98 views
0

我開始使用今天的Django,並試圖建立一個HTML表單Django的互動HTML表單

爲views.py代碼

def home(request): 
    t = get_template('home.html') 
    html = t.render(Context({ "GetLabel": 'Welcome to the SPACE program.', 
           "GetInput": '', 
           "Next": './get_machine' })) 
    return HttpResponse(html)  

def get_machine(request): 
    t = get_template('home.html') 
    html = t.render(Context({ "GetLabel": 'Enter the name of the machine: ', 
           "GetInput": '<input type="text" name="machine_name">', 
           "Next": './get_beamlines'})) 
    return HttpResponse(html) 

def get_beamlines(request): 
    machine_name = request.POST["machine_name"] 
    Context({ "GetLabel": 'Machine already installed<br> Overwrite Existing file', 
        "GetInput": '<select name="check" > <option value="Yes">Yes</option> <option value="No">No</option> </select>', 
        "Next": './get_beamline' }) 
    t = get_template('home.html') 
    html = t.render(Context({"GetLabel": 'Enter the number of beamlines: ', 
          "GetInput": '<input type="text" name="beamline_no"', 
          "Key":'Machine Name: ', 
          "Value": machine_name, 
          "Next": './get_beamline_name'})) 
    return HttpResponse(html) 

它是這樣的;現在我不知道如何進一步得到光束線的名稱(如果超過1)

我是django的新手,如果我錯了,請糾正我。

有沒有其他更好的方法來做同樣的事情。

注意:最後,我想將所有用戶輸入寫入一個xml文件。 我已經做了與正常的Python程序一樣,通過獲取用戶輸入的形式raw_imput()

+0

你是否按照教程?本教程詳細介紹了這一點:) –

+1

它看起來像你在錯誤的地方做了很多東西。 1 - 你在視圖中模板化,而你可以將它留給模板引擎。 2 - 你正在手動創建表單,而Django具有通過Form對象支持的優秀表單。我會像這樣解決這個問題 - 創建用於保存機器信息的表單。然後,我會重寫窗體保存方法,而不是使用Django的ORM來保存信息,你可以做你自己的XML保存,如果你真的要... –

+0

@Zayatzz對不起,我剛剛開始Django的今天,我不知道django表單對象,你可以請幫助我如何做與Django Form對象相同...非常感謝! – Thiru

回答

0

有關表單的一些基本信息在tutorial,你也可能需要使用內Django的forms framework可用。

+0

我試過了教程,但它顯示錯誤無法導入渲染,我用pylint使用eclipse,它也顯示沒有名字在django.shortcuts模塊中渲染,我檢查了模塊渲染不存在,我現在應該做什麼。 – Thiru

+0

你的意思是render_to_response? –

+0

不,只是渲染不可用,所以現在我使用render_to_response。我進行並堅持在http://stackoverflow.com/questions/14399435/using-formset-factory-in-django – Thiru