2013-04-22 3 views
3

간단한 양식 작성에 문제가 있습니다. 이것은 해당 양식의 모델입니다.Django 양식에 "유효한 날짜를 입력하십시오."

class UserStock(models.Model): 
    amount = models.FloatField(default=0) 
    date = models.DateTimeField('buy date') 
    stockPrice = models.FloatField(default=0) 
    user = models.ForeignKey(User) 
    stock = models.ForeignKey(Stock) 

이 내 forms.py 파일입니다

from django import forms 
from datetime import date 

class AddStockForm(forms.Form): 
    stock = forms.CharField(max_length=10) 
    amount = forms.FloatField(initial=0) 
    #, initial=date.today, input_formats=settings.DATE_INPUT_FORMATS 
    date = forms.DateField('buy date', initial=date.today) 
    stockPrice = forms.FloatField(initial=0) 

이 양식 데이터를 제출하기위한 첫 버전입니다.

@login_required(login_url='/login/') 
def new_stock(request): 
    if request.method == 'POST': 
     form = AddStockForm(request.POST) 
     if form.is_valid(): 
      cd = form.cleaned_data 

      #dateForm = datetime.datetime.strptime(cd['date'],"%Y-%m-%d") 
      userStock = UserStock(amount = cd['amount'], date=cd['date'], stockPrice = cd['StockPrice']) 
      userStock.user = request.user 
      stockForm = Stock.objects.filter(symbol=cd['stock']) 
      userStock.stock = stockForm 
      userStock.save() 
    else: 
     form = AddStockForm() 

    template = loader.get_template("userStocks/new.html") 
    context = RequestContext(request, { 
     'form':form.as_p(), 
    }) 
    return HttpResponse(template.render(context)) 

내 오류는 다음과 같습니다. enter image description here 제출하는 중 오류 : 올바른 날짜를 입력하십시오. Django의 자동 확인 형식이라고 생각합니다. 나는 많이 봤지만 도움이되지 않았다. input_formats 변형을 시도했지만 행운이 없습니다. 도움에 미리 감사드립니다.

답변

11

이 줄을 쓸 것이라고 생각합니다. 수동으로 설정하려고 할 때이 중복 오류를 보내는 이유

date = forms.DateField(label='buy date', input_formats=['%Y-%m-%d'], initial=date.today) 

내가 양식이 입력 형식으로 '날짜를 구입'수용 한 생각, 그입니다.

희망이

PS 작동 : 어쩌면 레이블은 "날짜를 구입"고 지정한 후, 당신은 input_formats 속성을 제거 할 수 있습니다.

+1

나는 시도했다. __init __()에 키워드 인수 'input_formats'에 대해 여러 값이 있습니다. – Lucas03

+0

이해가 안됩니다. 필드 선언에서 input_formats를 설정할 수 없다고합니까? –

+0

예 위에서 언급 한 것처럼 (forms.py) 설정할 수 없습니다. date = forms.DateField ('구매 날짜', 초기 = date.today, input_formats = [ '% Y- % m- % d ']) input_formats 오류 메시지가 나타납니다. – Lucas03

관련 문제