2010-12-07 5 views
1

Я ищу, как сделать проверку в Google App Engine, и я нашел только, как это сделать, используя Django framework. Ок-подход Django в порядке, но если у меня есть одна форма, и у этой формы есть данные из нескольких таблиц, что тогда ??? я не могу сделать это так:Google App Engine + Validation

class Item(db.Model): 
    name = db.StringProperty() 
    quantity = db.IntegerProperty(default=1) 
    target_price = db.FloatProperty() 
    priority = db.StringProperty(default='Medium',choices=[ 
     'High', 'Medium', 'Low']) 
    entry_time = db.DateTimeProperty(auto_now_add=True) 
    added_by = db.UserProperty() 

class ItemForm(djangoforms.ModelForm): 
    class Meta: 
     model = Item 
     exclude = ['added_by'] 

class MainPage(webapp.RequestHandler): 
    def get(self): 
     self.response.out.write('<html><body>' 
           '<form method="POST" ' 
           'action="/">' 
           '<table>') 
     # This generates our shopping list form and writes it in the response 
     self.response.out.write(ItemForm()) 
     self.response.out.write('</table>' 
           '<input type="submit">' 
           '</form></body></html>') 
    def post(self): 
     data = ItemForm(data=self.request.POST) 
     if data.is_valid(): 
      # Save the data, and redirect to the view page 
      entity = data.save(commit=False) 
      entity.added_by = users.get_current_user() 
      entity.put() 
      self.redirect('/items.html') 
     else: 
      # Reprint the form 
      self.response.out.write('<html><body>' 
            '<form method="POST" ' 
            'action="/">' 
            '<table>') 
      self.response.out.write(data) 
      self.response.out.write('</table>' 
            '<input type="submit">' 
            '</form></body></html>') 

Есть ли простой способ для проверки формы, которые содержат данные из нескольких таблиц или я должен кодировать его в покое?

ответ

1

Похоже, вы используете webapp; Я предлагаю вам взглянуть на некоторые другие «легкие» варианты для проверки формы. Выберите тот, который вам нравится в макете/синтаксисе. При необходимости вы сможете определить сложные «вложенные» отношения.

0

WTForms имеет компонент GAE WTForms

WTForms теперь включает поддержку AppEngine полей, а также генерацию авто-формы. Класс формы может использоваться как есть или служить базой для расширенных классов форм, которые затем могут смешивать немодельные поля, подформы с другими формами моделей, среди других возможностей.