2014-07-23 5 views
0

아래 양식을 사용하는 웹 응용 프로그램 페이지를 실행하려고합니다.__init __() 예상치 못한 키워드 인자 'widget'이 있습니다.

class InputParametersForm(ModelForm): 

    sqlConnection = SQLSeverConnection(
     'MSSQLServerDataSource', 
     'default_user', 
     'password123!!', 
     'HD' 
    ) 
    tableChoices = sqlConnection.getTableNames() 
    TableName = forms.Select(
     widget=forms.Select(attrs={'class': 'selector'}) 
    ) 
    ColumnName = forms.Select(
     widget=forms.Select(attrs={'class': 'selector'}) 
    ) 
    StartDateTime = forms.DateField(
     widget=SelectDateWidget(
      empty_label=("Choose Year", "Choose Month", "Choose Day") 
     ) 
    ) 
    EndDateTime = forms.DateField(
     widget=SelectDateWidget(
      empty_label=("Choose Year", "Choose Month", "Choose Day") 
     ) 
    ) 

    class Meta: 
     model = SelectionHistory 
     fields = ("TableName", "ColumnName", "StartDateTime", "EndDateTime") 

내가 manage.py runserver을 실행하고 나는 위젯을 사용하려 한 오류 __init__() got an unexpected keyword argument 'widget'와 500 페이지를 받고 있어요 로컬 URL로 이동합니다.

이것은 아마도 기본적인 오류입니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 커다란 도움이 될 것입니다.

답변

0

forms.Select은 위젯이 아니며 Field이 아니며 widget 인수가 없습니다. 이것은 오류가보고하는 것입니다.

>>> from django import forms 
>>> forms.Select(widget=forms.Select) 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
TypeError: __init__() got an unexpected keyword argument 'widget' 

을 대신 당신이 Select 위젯으로 ChoiceField을 의미 :

:

TableName = forms.ChoiceField(widget=forms.Select(attrs={'class': 'selector'})) 

여기에 다니엘의 예를 참조 이것은 당신이 기본적으로 가지고있는 것입니다

+0

https://docs.djangoproject.com/en/1.6/ref/forms/widgets/#select – elmonkeylp

1

다른 가능성 이 오류 메시지를 받으면 y는 DB 모델과 폼 모델을 처리 할 때 장고에 다른 유형의 필드가 있음을 나타냅니다. 포함 항목의 순서가 올바른지 확인하십시오. 모델 이후 양식을 포함하십시오. 당신의 라인을 따라 뭔가를 할 경우

from models import * 
from django.forms import * 

폼의 필드 개체를 강제로이 대신 widget 키워드가 DO 모델의 필드 개체로 사용할 수 있습니다.

관련 문제