StringListProperty ограничил 500 символьными строками (Google App Engine / Python)

Кажется, что StringListProperty может только содержать строки до 500 символов каждый, точно так же, как StringProperty...

Существует ли способ сохранить более длинные строки, чем это? Мне не нужны они, чтобы быть индексированным или что-либо. То, в чем я нуждался бы, будет чем-то как "TextListProperty", где каждая строка в списке может быть любой длиной и не ограниченная 500 символами.

Я могу создать свойство как этот? Или можете Вы эксперты предлагать другой подход? Возможно, я должен использовать простой список и солить/не солить его в поле Blob или чем-то как этот? Я немного плохо знаком с Python и GAE, и я был бы очень признателен за некоторые указатели вместо того, чтобы провести взятые на пробу дни и ошибка... Спасибо!

5
задан MarcoB 23 May 2010 в 19:28
поделиться

2 ответа

Вы можете использовать общий ListProperty с item_type, как вам требуется (str, или unicode, или что угодно).

2
ответ дан 14 December 2019 в 13:28
поделиться

Алекс уже давно ответил, но на случай, если кто-то еще придет с той же проблемой:

Вы просто сделаете item_type равным db.Text (как OP упоминает в комментарии).
Вот простой пример:

from google.appengine.ext import db
class LargeTextList(db.Model):
    large_text_list = db.ListProperty(item_type=db.Text)

def post(self):
    # get value from a POST request, 
    # split into list using some delimiter
    # add to datastore
    L = self.request.get('large_text_list').split() # your delimiter here
    LTL = [db.Text(i) for i in L]
    new = LargeTextList()
    new.large_text_list = LTL
    new.put()

def get(self):
    # return one to make sure it's working
    query = LargeTextList.all()
    results = query.fetch(limit=1)
    self.render('index.html', 
            {   'results': results, 
                'title': 'LargeTextList Example',
            })
4
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: