2013-09-10 89 views
0

我想在表單提交後顯示警告框。表單提交後顯示警報Django

當用戶第一次訪問該頁面時,該框將被隱藏,並且在提交時將顯示「創建新類別」或「類別已存在」。

我想我知道我可以在模板中做到這一點,但我不知道如何將變量傳遞到重定向模板上。

以下是視圖。有什麼想法我可以做到這一點?

我很欣賞這個反饋。

@login_required 
@locationed 
def manage_cat_subcat(request, location): 

    form = AddCategory() 

    if request.method == 'POST': 
     form = AddCategory(request.POST) 
     if form.is_valid(): 
      submitted_cat_name = form.cleaned_data['category_name'] 

      _, was_created = Category.objects.get_or_create(name=submitted_cat_name) 

      return HttpResponseRedirect(reverse('manage_cat_subcat', args=(location.slug,))) 

    return render(request, 'inventory/manage_cat_subcat.html', {'location': location, 'form': form}) 

回答

0

它看起來像你在談論渲染根據提交的某些信息的用戶的對話框。如果是這樣,我強烈建議在字段丟失焦點時使用JQuery來拉取類別字段的值,然後通過AJAX調用立即將該類別信息傳遞給視圖文件中的專用方法。根據響應,您將顯示適當的對話框。因此,這將是這樣在你的views.py:

AJAX的
@render_json 
    def ajax_category_check(request){ 
     if request.method == 'POST' and 'category_name' in request.POST:   
     #insert your code that checks new or existing categories 

     #if the category exists... 
     return {'exists': True} 

     return {'exists': False} 
    } 

一個優點是它使得用戶體驗了很多通過移除讓他們處理表單提交/瀏覽器頁面清爽的負擔更順暢。

在另一方面,如果你在談論概略地表示形式之前警告對話框甚至提出,攔截表單提交,並顯示使用JQuery的對話框:

$('form').click(function(event){ 
     $('#dialog').show(); 

     /* after a delay or after dialog confirmation, etc... */ 
     $('form').submit(); 
    });