2010-08-14 4 views
0

내 응용 프로그램이 데이터베이스의 모든 데이터를 쓰지는 않습니다. 아래 예제에서 DB 이름을 입력하십시오. 모든 필드 선택 드롭 다운은 데이터베이스에 기록되지 않습니다.Appengine forms 옵션 db.Model에서 선택

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 : 나는 모델 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') 

이 내 주입니다

으로

<select name="categoria"> 

...

<select name="regime"> 

:

<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

안녕하세요. 귀하의 템플릿 중 일부는 포함되지 않았다고 생각합니다. 앞으로는 코드 서식 지정 단추 또는 ctrl-k를 사용하십시오. – bernie

답변

1

변경이

<select name="docente_categoria"> 

...

<select name="docente_regime"> 
+0

Bernier에게 감사드립니다. 이 작은 문제는 이미 해결되었지만 게시 한 다른 문제가 있습니다. 5 개의 모델 엔티티가 있으며 동일한 페이지에서 다른 클래스로 양식 채우기 - DB에 쓰고 값을 표시합니다. – Martinho