在两个单独的页面上将数据添加到数据库

时间:2013-06-20 11:47:39

标签: python database django

我目前正在使用django框架进行python的网页工作。 我需要一个admin用户可以在系统中注册事件的页面。 活动:地图上的位置,描述,图片,链接等。

我觉得这有点不那么令人困惑如果我让用户在第一页上添加位置详细信息,但是当他完成选择他可以点击下一个位置的位置时,这会将他带到另一个页面,他将完成填写信息关于这个事件。

我不确定,但我认为这是一个数据库问题,而不是django问题。

How would I continue adding to the same table in a database between two seperate pages?

我考虑使用时间戳,所以我可以在下一页上选择最后一个修改过的表,但我认为这可能有风险+如果用户返回修改表时间戳是无用的。

我正在使用Django 1.5 + postgresql数据库。任何阅读参考文献都可能有助于检查这种操作吗?

1 个答案:

答案 0 :(得分:1)

我之前做过类似的事情。我要求用户在一个页面上输入一个邮政编码,然后根据该邮政编码加载到下一页的表单的不同选项中。以下是我使用request.session

的方式

请注意,这是我对我的问题的灵魂。这可能不是您正在寻找的,但可能会帮助您开始。如果有人有更好的解决方案,我很乐意看到它,因为我对我的回答并不完全满意。

views.py

def find_zip(request):                                                                           
    c={}                                                                                         
    form = FindZip()                                                                             
    c['form'] = form                                                                             
    if request.method == 'POST':                                                                 
        form = FindZip(request.POST)                                                                                                       
        c['form'] = form                                                                         
        if form.is_valid():                                                                                      
            zip = form.data['zip']                                                               
            form = ExternalDonateForm(initial={'zip':zip})                                       
            request.session['_old_post'] = request.POST                                          
            c['form'] = form                                                                     
        response = HttpResponseRedirect('/external')                                             

        return response                                                                          

    return render_to_response(                                                                   
        'find_zip.html',                                                                         
        c,                                                                                      
        context_instance=RequestContext(request)       

然后我尝试从上一个视图中恢复该会话

def donate_external(request):                          
    zip = None                                         
    if request.session.get('_old_post'):               
        old_post = request.session.get('_old_post')    
        zip = old_post['zip']                                            
    )         
    # rest of code ....