2010-08-14 70 views
0

我的應用程序不會寫入數據庫中的所有數據。在下面的例子中,輸入數據庫名稱。所有字段選擇下拉列表不記錄在數據庫中。請幫助Appengine表格選項從db.Model中選擇

我有一個模型Docente

ESCOLHA_SEXO = (u'masculino', u'feminino') 
CHOICES_UNIDADE = ('Escola Superior de Tecnologia', 'Escola Superior de Gestao') 
CHOICES_CATEGORIA = ('assistente', 'coordenador', 'adjunto') 
CHOICES_REGIME = ('trinta', 'cinquenta', 'sessenta', 'cem') 

class Docente(db.Model): 
    photo=db.BlobProperty(u'photo') 
    docente_nome = db.StringProperty(u'docente_nome', 
            required=False) 
    docente_unidade = db.StringProperty(u'docente_unidade', 
             required=False, 
             default='Escola Superior de Tecnologia', 
             choices = CHOICES_UNIDADE) 
    docente_categoria = db.StringProperty(u'docente_categoria', 
              default='assistente', 
              choices =CHOICES_CATEGORIA) 
    docente_regime = db.StringProperty(u'docente_regime', 
             required=False, 
             choices =CHOICES_REGIME) 
    utilizador=db.ReferenceProperty(Utilizador, 
            verbose_name=u'utilizador', 
            required=False, 
            collection_name='utilizadores') 

這是我的主:

class CriarCvHandler(webapp.RequestHandler): 
    def post(self): 
     if self.request.get('EscDocente'): 
      id = int(self.request.get('EscDocente')) 
      docente=models.Docente.get(db.Key.from_path('Docente', id)) 
     else: 
      docente = models.Docente() 

     data=forms.DocenteForm(data = self.request.POST) 
     if data.is_valid(): 
      if self.request.get('photo'): 
       docente.docente_nome=self.request.get('docente_nome') 
       docente.docente_unidade=self.request.get('docente_unidade') 
       docente.docente_categoria=self.request.get('docente_categoria') 
       docente.docente_regime=self.request.get('docente_regime') 

      listaUtlz = models.Utilizador.all() 
      listaUtlz.filter('user =', users.get_current_user()) 

      for utilizador in listaUtlz: 
       docente.utilizador=utilizador.key() 

      docente.put() 
      self.redirect('/academia') 
     else: 
      self.redirect('/criarCv') 

    def get(self): 
     user=users.get_current_user() 
     if user: 
      greeting= ("<ul><li><strong><b>Benvindo %s </b></strong>|</li><li><a href=\"/perfil\"> Minha Conta </a>|</li><li><a href=\"%s\"> Logout</a></li></ul>" %(user.nickname(), users.create_logout_url("/"))) 
     else: 
      greeting = ("<ul><li><a href=\"%s\">Login</a></li></ul>" %(users.create_login_url("/"))) 

     conjUnidade=models.Docente.docente_unidade.choices 
     conjCategoria=models.Docente.docente_categoria.choices 
     conjRegime=models.Docente.docente_regime.choices 

     utilizador=db.Query(models.Utilizador) 
     utilizador=utilizador.filter('user =', user) 
     listaUtlz=utilizador.fetch(limit=1) 

     if self.request.GET.has_key('id'): 
      id=int(self.request.GET['id']) 
      EscDocente=models.Docente.get(db.Key.from_path('Docente', id)) 

     path = os.path.join(os.path.dirname(__file__), 'templates/criarCv.html') 
     self.response.out.write(template.render(path, locals(), debug = True)) 

這是我的模板: 諾姆Docente:

<tr> 
    <td>Unidade: </td> 
    <td> 
    <select name="docente_unidade"> 
     {% for docente_unidade in conjUnidade %} 
     <option selected> {{ docente_unidade }} </option> 
     {% endfor %} 
    </select> 
    </td> 
</tr> 

<tr> 
    <td>Categoria: </td> 
    <td> 
    <select name="categoria"> 
     <option></option> 
     {% for docente_categoria in conjCategoria %} 
      {% ifequal EscDocente.docente_categoria docente_categoria %} 
      <option selected> {{ docente_categoria }} </option> 
      {% else %} 
      <option> {{ docente_categoria }} </option> 
      {% endifequal %} 
     {% endfor %} 
    </select> 
    </td> 
</tr> 

<td>Regime: </td> 
    <td> 
    <select name="regime"> 
     <option></option> 
     {% for docente_regime in conjRegime %} 
      {% ifequal EscDocente.docente_regime docente_regime %} 
      <option selected> {{ docente_regime }} </option> 
      {% else %} 
      <option> {{ docente_regime }} </option> 
      {% endifequal %} 
     {% endfor %} 
    </select> 
    </td> 

    <tr> 
    <td></td> 
    <td> 
     <input type="button" value="Guardar" onclick="guardaCv()" /> 
+0

歡迎來到SO。我認爲你的一些模板不包括在內。請在將來使用代碼格式化按鈕或ctrl-k。 – bernie 2010-08-14 22:27:31

回答

1

更改這些

<select name="categoria"> 

...

<select name="regime"> 

對此

<select name="docente_categoria"> 

...

<select name="docente_regime"> 
+0

非常感謝Bernier。 這個小問題已經解決,但我有另一個,我已經發布。 我有5個模型實體,需要在同一頁面上填寫不同類別的表格 - 寫入數據庫並顯示值 – Martinho 2010-08-15 18:28:52