AppEngine: использование класса Expando в Django NonRel?

У меня есть приложение, использующее Django Nonrel на AppEngine.

Я хотел бы использовать динамическую модель, аналогичную классу WebApp db.Expando - возможно ли это? Доступен ли класс Expando для уровня DNR?


person mikemaccana    schedule 19.01.2012    source источник
comment
Вариант 3 stackoverflow.com/questions/7933596/django -dynamic-model-fields/ применяется к Django-nonrel в целом.   -  person Gagandeep Singh    schedule 24.01.2012
comment
@GagandeepSingh Спасибо. «из djangotoolbox.fields import DictField» было именно то, что я искал. Если вы поставите это как ответ, я отмечу это.   -  person mikemaccana    schedule 25.01.2012


Ответы (2)


Вы можете использовать DictField и ListField из djangotoolbox для создания динамические модели в Django-nonrel. Например,

from djangotoolbox.fields import DictField

class Image(models.Model):
    exif = DictField()

и,

class Post(models.Model):
    words = ListField(models.CharField(max_length=500))
    title = models.CharField(max_length=200)
    content = models.TextField(blank=True)

Дополнительные сведения см. в разделе Вариант 3 полей динамической модели Django.

person Gagandeep Singh    schedule 25.01.2012

Django реализует собственный уровень абстракции БД — он не построен на модуле db App Engine. Если django не предоставляет его сам, он недоступен.

person Nick Johnson    schedule 24.01.2012
comment
Да, я знаю об этом. Следовательно, возникает вопрос: «Является ли класс Expando доступным для уровня DNR?» в вопросе. - person mikemaccana; 25.01.2012
comment
@nailer Но этот вопрос не имеет смысла в контексте: класс expando не отображается, потому что он не используется. Django-nonrel не использует структуру базы данных App Engine. Его невозможно раскрыть, потому что его там нет. - person Nick Johnson; 25.01.2012