如何在djang中清除表单数据

2024-10-01 09:20:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我创造了django表单.py文件:

from django import forms
from models import ResumeModel


class ResumeForm(forms.ModelForm):
    username = forms.CharField(max_length = 200)
    first_name = forms.CharField(max_length = 200)
    last_name = forms.CharField(max_length = 200)
    fathers_name = forms.CharField(max_length = 200)
    email = forms.EmailField(required=True, label='Your e-mail address')
    message = forms.CharField(widget=forms.Textarea)
    class Meta():
        model = ResumeModel
        fields =('username','first_name','last_name','fathers_name','email','message')

视图.py:

^{pr2}$

在网址.py公司名称:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^save/', 'Resume.views.save'),
    url(r'^success/$', TemplateView.as_view(template_name='success.html')),
)

现在一切正常。问题是,当我提交表单时,它会移到success页面,当我回到上一个页面,即/save/page时,它保存了我提交的字段中的所有值。如果我按back button to go back to that form page having url as "/save/ ",如何清除字段


Tags: djangonamefrompyimporturl表单save
2条回答

这是关于浏览器行为的。浏览器显示缓存中的页面,而不是调用新页面。在

你可以通过使用很不幸浏览器也不再运行javascript代码。在

但你可以试试:

$(window).bind("pageshow", function() {
  // Clean form values
});

通过JQuery

这是一个浏览器实现细节。你可以用JavaScript或者破坏缓存等等来解决这个问题。在

然而,更好的UI方法可能是使用AJAX发布表单的序列化版本。如果您成功地验证并处理了view(在简历模型表中插入新行等),那么您可以发送一个JSON响应,该响应可能会调用一些JavaScript来清除表单字段(可能使用^{})。如果需要的话,用户可以自由地提交另一个表单。在

另请注意,建议您在成功的POST之后使用^{}(此时您有一个render()响应)。这将阻止用户再次提交表单,并可能复制数据库中的行等

相关问题 更多 >