2010-12-04 18 views
0

J'écris une application sur le moteur de l'application Google en utilisant un zip de Django 1.0.2 car j'utilise le patch appengine. (Oui, il s'agit d'une ancienne configuration.)Problèmes avec Django MultiValueField

J'essaie d'implémenter un MultiValueField et cela ne fonctionne pas. À titre d'exemple, j'ai pris exactement le code de http://www.hoboes.com/Mimsy/hacks/django-forms-edit-inline/multiwidgets-templates/ et mis CMSChangeFields dans ma forme comme suit

# In models 
class Foo(db.Model): 
    foo = db.StringProperty() 
    bar = db.StringProperty() 

# In forms 
class FooForm(djangoforms.ModelForm): 
    foo = fields.CMSChangeFields() 
    class Meta: 
    model = models.Foo 

Si je commente sur foo dans FooForm, je vois deux champs d'édition. Si je laisse foo dedans, je vois "[[VARIABLE UNDEFINED]]", qui est ce que j'ai placé TEMPLATE_STRING_IF_INVALID dans mon settings.py.

Que se passe-t-il?

Je vois qu'il peut y avoir une discordance entre les types Foo.foo et FooForm.foo, mais je ne suis pas sûr.

Sinon, comment est-ce que je débogue ceci? J'ai ignoré init méthodes des champs, des formes, etc., et des choses de connexion, mais je ne peux pas dire ce qui ne va pas. Si j'essaie d'utiliser le débogueur, il faut littéralement> 10 minutes pour démarrer et utiliser les mauvais fichiers sources (la version google_appengine de Django au lieu de mon fichier zip), même si j'ai déjà passé le projet paramètres soigneusement. Ce que je dis, c'est que le débogueur me défie.

Répondre

0

Si quelqu'un a jamais rencontré ce problème, mon problème était de retourner None de mon décompresseur de widget. Toute valeur provenant de decompress doit avoir le même nombre de valeurs indicatives que les widgets dans le MultiWidget (dans mon cas, deux). Si foo est None, alors foo [1] est mauvais. Malheureusement, Django 1.0.2 a signalé ce problème avec une valeur vide.