2012-07-09 57 views
0

我正在尋找這個基本問題的解決方案:我使用jquery插件(datepicker)讓用戶選擇一個日期。這應該如何在django表單中使用?基本 - 添加jQuery插件Django的形式

formset似乎不是正確的解決方案,但是也沒有製作和調用我自己的小部件。我不想繼續嘗試新的選擇,我正在尋找一些方向。這是一個簡單的測試場景。

models.py

class DateTest(models.Model): 
     date_nm = models.CharField(max_length=120) 
     fromdate = models.DateTimeField() 

forms.py

def datetest_save_page(request): 
    if request.method == 'POST': 
     form = DateTestSaveForm(request.POST) 
     if form.is_valid(): 
      date_nm, dummy = DateTest.objects.get_or_create(
       date_nm=form.cleaned_data['date_nm'] 
      ) 
      fromdate = form.cleaned_data['fromdate'] 
      return HttpResponseRedirect('datetest_page.html') 
    else: 
     form = DateTestSaveForm() 
    return render_to_response('datetest_save.html', { 
     'form': form, 
    }) 

forms.py

class DateTestSaveForm(forms.Form): 
    date_nm = forms.CharField(
     label=u'Date Name', 
     max_length=30 
    ) 
    fromdate = forms.DateTimeField() 

我有我的日期選擇器設置在我base.html文件,並呼籲在datetest_save。 HTML。它會調用我可以選擇的日期,但我不知道如何選擇我選擇的日期並將其粘貼到我的數據庫中。

感謝您的幫助。

回答

0

實際上有很多名爲「datepicker」的jQuery插件,所以很難知道你可能會在這裏使用哪一個。但是,如果您不想創建自定義表單字段,則需要找到一個庫,以便自定義使用的日期格式。具體而言,字段值將需要採用格式:「YYYY-MM-DD」。

如果你不能或不想以該格式獲得日期,那麼你將不得不創建一個自定義表單域,它將自動將你選擇的日期格式解析爲Django可用的東西。

+0

無視以上: 謝謝克里斯。這是我需要的 - [自定義表單字段](http://stackoverflow.com/questions/1526806/tutorial-about-how-to-write-custom-form-fields-in-django)是答案我正在尋找。這就是說,我已經瀏覽了一大堆文檔,但仍然只有一個模糊的概念,如何將[jquery datepicker](http://jqueryui.com/demos/datepicker/)連接到自定義表單字段。我知道我需要創建一個處理數據的類,然後在表單中調用該類。但是,仍然不確定該類的語法以及如何引用datepicker。謝謝。 – jabs 2012-07-10 21:19:39

0

聽起來像你指的是jQuery UI日期選擇器。您可以設置日期選擇器的格式。

另外,您不需要爲輸入日期/時間創建自定義字段。你的意思是使用DateTimeField?如果您只需要日期,那麼您可以在表單和模型中使用DateField

要設置DateField的輸入格式,你可以這樣做:

fromdate = forms.DateField(input_formats=['%Y-%m-%d']) 

See this瞭解更多詳情。

如果要提供在該領域應該格式化你能做的格式:文件有關格式

fromdate = forms.DateField(input_formats=['%Y-%m-%d'], 
          widget=forms.DateInput(format='%Y-%m-%d')) 

See this

注:

最好是使用YYYY-MM-DD格式,因爲新的HTML5日期字段只允許你使用這種格式。

此外,您可以使用ModelForms爲您的表單。

+0

感謝Maqsood。是的,這是[UI日期選擇器](http://jqueryui.com/demos/datepicker/)。 但問題不在於如何格式化(但感謝html5提示),它更關於將日期選擇器連接到我的表單。有一個斷開他們,我不知道如何鏈接起來。我可以在我的html中調用datepicker,並將它顯示在頁面中,但它不會發布到數據庫,因爲它沒有在表單中引用。我怎麼做? – jabs 2012-07-17 11:14:20