2016-08-01 11 views
2

Ich versuche, eine benutzerdefinierte Form/Blick in Calendarium zu schaffen, und ich erhalte einen FehlerModul‘Objekt hat kein Attribut‚SelectDateWidget‘

AttributeError: 'module' object has no attribute 'SelectDateWidget' 

Create In meinem forms.py

class CreateEvent(forms.ModelForm): 
    class Meta: 
     model = Event 
     fields = ['title', 'start', 'end', 'description', 'category', 'created_by', 'rule', 'end_recurring_period'] 
     widgets = { 
      'start': forms.SelectDateWidget() 
     } 

EventCreateView innerhalb views.py

class EventCreateView(EventMixin, CreateView): 
    form_class = CreateEvent 
    model = Event 

weiß jemand, warum ich erhalte diesen Fehler

Extra (falls erlaubt):

Im EventCreateView seine bestanden "EventMixin" werden, die wie folgt

class EventMixin(object): 
    """Mixin to handle event-related functions.""" 
    model = Event 
    fields = '__all__' 



    @method_decorator(permission_required('calendarium.add_event')) 
    def dispatch(self, request, *args, **kwargs): 
     return super(EventMixin, self).dispatch(request, *args, **kwargs) 
sieht

jemand mir dies erklären?

Antwort

1

Nach the docs benannt ist, können Sie nur aus django.forms in Django das SelectDateWidget Widget importieren 1.9 +. In früheren Versionen müssen Sie es von django.forms.extras.widgets importieren.

Fügen Sie zuerst den Import:

from django.forms.extras.widgets import SelectDateWidget 

dann die widgets in dem Formular ändern:

widgets = { 
     'start': SelectDateWidget(), 
    } 
2

Sie fehlen widgets:

class CreateEvent(forms.ModelForm): 
    class Meta: 
     model = Event 
     fields = ['title', 'start', 'end', 'description', 'category', 'created_by', 'rule', 'end_recurring_period'] 
     widgets = { 
      'start': forms.widgets.SelectDateWidget() 
     } 
     #     ^^ 

Auf einer anderen Anmerkung, ich vermute, die Datei, die Schnipsel enthalten forms.py

+0

Während SelectDateWidget und andere als forms.widgets.SelectDateWidget importiert werden, die forms.SelectDateWidget Import funktioniert auch. – e4c5

+1

@ e4c5 Definitiv. Ich fange an zu denken, OP hat irgendwo im aktuellen Verzeichnis eine Datei namens 'forms.py' –

Verwandte Themen