Django request.session无法解决

时间:2013-10-08 06:08:55

标签: django django-forms django-views django-sessions

我在同一个应用程序中的两个模型之间有一个ManyToMany关系。这看起来如下:

class Event(models.Model):
    eventID = models.CharField(deafult = random_eventID)
    signal = models.ManyToManyField(Signal)
    ....
    ....

现在,在我的表单中(使用ModelForm)每次刷新页面时,我的 eventID 字段已经填充了 eventID (因为它获得了一个新的每次刷新页面时,random_eventID 。 这样,当我在我的表单中选择添加一个新信号时(我希望能够在创建事件时添加信号)...它会转到不同的视图。我保存了该活动,当我返回“活动”页面时, eventID 再次更改。我希望在添加大量不同内容后返回“事件”页面时,用户已经填写/选择的所有数据都存在。

我想到的解决方案:

1 - 我无法更改我的模型,以便包含另一列并在转到另一个页面之前保存事件。之后将其取回。

2 - 使用会话我保存所有字段中已存在的所有数据,稍后将其检索回来。(这样,HTTP不再是无状态的,但它符合我的目的。)

3 - Ajax是否有助于进行任何更新(我不理解)

我尝试使用session并且遇到了这个愚蠢的错误,我无法解决。

views.py

def create(request):
    if request.POST:
        form = EventForm(request.POST)
        form .save()
        del request.session['event_id']
        return HttpResponseRedirect('/Event')
    else:
        event_session = request.session.get('event_id')
        if event_session is not None:
            form = EiEventForm(initial={'eventID' : event_session}
        else:
            form = EventForm()
            request.session['event_id'] = form('eventID').value()
    args = {}
    args.update(csrf(request))
    args['form'] = form
    return render_to_response('event.html', args)

有了上述内容,经过调试后,我没有得到eventID字段中的当前值。我尝试了其他一些方法但没有成功。

request.GET.get('eventID')返回None ..如何从我的字段中获取值?

此外,还有更好的方法来完成除会话之外的所需结果。

任何帮助都会有很大的帮助!

0 个答案:

没有答案