Запросите отдельный список вариантов для формы Django с помощью App Engine Datastore - PullRequest
1 голос
/ 02 февраля 2009

Я пытался понять это часами через пару дней и не могу заставить его работать. Я был везде Я продолжу пытаться понять это, но надеялся на более быстрое решение. Я использую хранилище данных App Engine + Django.

Используя запрос в представлении и пользовательских формах, я смог получить список в форме, но затем я не смог опубликовать. Я пытался выяснить, как динамически добавлять варианты как часть формы Django ... Я пробовал разные способы, но безуспешно. Помогите!

Ниже представлены две модели. Я хотел бы получить отдельный список address_id для отображения в поле местоположения в InfoForm. Эти поля могут (и, возможно, должны) называться одинаково, но я подумал, что было бы проще, если бы они назывались по-разному.

class Info(db.Model):
    user = db.UserProperty()
    location = db.StringProperty()
    info = db.StringProperty()
    created = db.DateTimeProperty(auto_now_add=True)
    modified = db.DateTimeProperty(auto_now=True)

class Locations(db.Model):
    user = db.UserProperty()
    address_id = db.StringProperty()
    address = db.StringProperty()

class InfoForm(djangoforms.ModelForm):
    info = forms.ChoiceField(choices=INFO_CHOICES)
    location = forms.ChoiceField()
    class Meta:
            model = Info
            exclude = ['user','created','modified']

1 Ответ

1 голос
/ 02 февраля 2009

Я не знаком с App Engine Datastore, но думаю, вы, вероятно, хотите сделать что-то вроде этого:

class InfoForm(djangoforms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(InfoForm, self).__init__(*args, **kwargs)
        choices = [(r.id, r.info) for r in Info.objects.filter(...)]
        self.fields['info'] = ChoiceField(choices=choices)

При динамическом присвоении info вы бы исключили эту строку из вашего InfoForm класса:

    info = forms.ChoiceField(choices=INFO_CHOICES)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...