在 Django 中,使用 Form 类创建了一个表单,该表单包含一个字符串字典。表单中包含一个提交按钮和一个预览按钮。当点击预览按钮后,会发送一个 POST 请求,并且表单中的字符串将自动恢复。然而,如果在不提交表单的情况下,直接访问该页面并输入信息,点击预览按钮时,先前预览中保存的字典信息仍然存在。如何清除这些信息?
class ListingImagesForm(forms.Form):
# ...
def clear_dictionaries(self):
self.statuses = {}
self.thumbnail_urls = {}
self.image_urls = {}
@login_required
def add(request):
# ...
else:
form = GeneralListingForm()
image_form = ListingImagesForm()
image_form.clear_dictionaries()
@login_required
def add(request):
# ...
else:
form = GeneralListingForm()
image_form = ListingImagesForm()
image_form.clear_dictionaries()
return render_to_response('add_listing.html', {'form': form, 'image_form' : image_form,
'preview': preview, 'added': added,
'owner': owner, 'listing': new_listing,
'currentmaintab': 'listings',
'currentcategory': 'all'},
context_instance=RequestContext(request))
@login_required
def add(request):
# ...
else:
form = GeneralListingForm()
image_form = ListingImagesForm()
return render_to_response('add_listing.html', {'form': form, 'image_form' : image_form,
'preview': preview, 'added': added,
'owner': owner, 'listing': new_listing,
'currentmaintab': 'listings',
'currentcategory': 'all'},
context_instance=RequestContext(request))
# 在 Form 类中添加清除字典的方法:
class ListingImagesForm(forms.Form):
# ...
def clear_dictionaries(self):
self.statuses = {}
self.thumbnail_urls = {}
self.image_urls = {}
# 在视图中调用清除字典的方法:
@login_required
def add(request):
# ...
else:
form = GeneralListingForm()
image_form = ListingImagesForm()
image_form.clear_dictionaries()
# 在视图中使用清除后的字典:
@login_required
def add(request):
# ...
else:
form = GeneralListingForm()
image_form = ListingImagesForm()
image_form.clear_dictionaries()
return render_to_response('add_listing.html', {'form': form, 'image_form' : image_form,
'preview': preview, 'added': added,
'owner': owner, 'listing': new_listing,
'currentmaintab': 'listings',
'currentcategory': 'all'},
context_instance=RequestContext(request))
# 或者,在视图中使用新的 Form 实例:
@login_required
def add(request):
# ...
else:
form = GeneralListingForm()
image_form = ListingImagesForm()
return render_to_response('add_listing.html', {'form': form, 'image_form' : image_form,
'preview': preview, 'added': added,
'owner': owner, 'listing': new_listing,
'currentmaintab': 'listings',
'currentcategory': 'all'},
context_instance=RequestContext(request))