/ / erreur de django: argument de mot clé inattendu 'widget' - django-forms

erreur django: argument de mot clé inattendu 'widget' - django-forms

Je souhaite afficher un champ (nommé "icône") en tant que bouton radio.

J'ai créé la méthode callback afin d'afficher DateTimeFields avec JQuery. Le code suivant devrait le faire, cependant je reçois cette erreur lorsque je lance mon serveur:

Erreur lors de l'appel des bases de métaclasses make_custom_datefield () a un argument de mot clé inattendu, "widget"

...

Emplacement d'exception: Virtualenvs / django / local / lib / python2.7 / site-packages / django / forms / models.py dans fields_for_model, ligne 164

forms.py:

def make_custom_datefield(f):
formfield = f.formfield()
if isinstance(f, DateTimeField):
formfield.widget.format = "%m/%d/%Y"
formfield.widget.attrs.update({"class":"datetimePicker", "readonly":"true"})
return formfield

class FlashForm(forms.ModelForm):
formfield_callback = make_custom_datefield

class Meta:
model = Flash
exclude=("user","marker","address")
widgets = {"icon": forms.RadioSelect(), }

Pouvez-vous m'aider s'il vous plaît, je n'ai vraiment aucune idée de comment résoudre ce problème!

Merci

Réponses:

3 pour la réponse № 1

Finalement, j'ai trouvé la réponse: je devais ajouter le paramètre ** kwargs.

def make_custom_datefield(f,**kwargs):
formfield = f.formfield(**kwargs)
if isinstance(f, DateTimeField):
formfield.widget.format = "%m/%d/%Y"
formfield.widget.attrs.update({"class":"datetimePicker", "readonly":"true"})
return formfield