UNIDAD 4. Lección 4.5 Actividad 2. Modificando los archivos para los campos de registro.

38 views
Skip to first unread message

María Salud Carmona

unread,
Apr 19, 2013, 6:27:43 PM4/19/13
to u-m...@googlegroups.com
Hola a todos, estoy en la actividad que se propone en la que coloquemos en el foro campos que pueden resultar interesantes para incluir en el registro de los estudiantes. Aparte del nombre o edad, como ya nos hemos encontrado al inscribirnos aquí, yo por ejemplo, incluiría el lugar de procedencia del estudiante y su profesión.

He realizado la modificación en el archivo en el archivo: views /register.html
Dejo copiada la parte que modifiqué, con el ejemplo procedencia del estudiante, no sé si me falta alguna modificación más en ese archivo. 

      <form action="register" method='post'>
        <input type="hidden" name="xsrf_token" value="{{ register_xsrf_token|escape }}">
        <fieldset>
          <ol>
            <li>
              <label class="form-label" for="form01">
               {% trans %} What is your name? {% endtrans %}
              </label>
              <input name="form01" type="text">
            </li>
            <li>
              <label class="form-label" for="form02">
               {% trans %} What is your age? {% endtrans %}
              </label>
              <input name="form02" type="text">
            </li>
            <li>
            <label class="form-label" for="form03">
            {% trans %} ¿Cual es tu pais? {% endtrans %}
            </label>
             <input name="form03" type="text">
            </li>
            {{course_info.reg_form.additional_registration_fields | safe}}
          </ol>
        </fieldset>

Ahora el problema lo tengo en los restantes archivos. Al parecer hay que modificar también: models/ model.py y algunos más.
Empezando por models/ model.py Creo que he encontrado la clase donde yo interpreto hay que hacer la modificación:

class Student(BaseEntity):
    """Student profile."""
    enrolled_on = db.DateTimeProperty(auto_now_add=True, indexed=True)
    user_id = db.StringProperty(indexed=False)
    name = db.StringProperty(indexed=False)
    age = db.StringProperty(indexed=False)   
    is_enrolled = db.BooleanProperty(indexed=False)

Ahora bien, no sé si habría simplemente que añadir un campo tras age=db.StringProperty (indexed=False) y colocar por ejemplo:
pais=db.StringProperty (indexed=False) o hay que modificar algo más en @class method.

Esta parte es muy confusa para mí ¿Alguien puede ayudarme? 

Gracias y saludos

Enrique Sánchez Acosta

unread,
Apr 20, 2013, 6:03:11 AM4/20/13
to u-m...@googlegroups.com
Excelente!
Pero recuerda que siempre es mejor para recoger datos que des una lista en vez de un campo de texto, por que no es lo mismo España que españa o spain o cosas así para filtrar los resultados
A lo que has añadido te faltarían dos cosas
1.- Recoger el dato en utils.py tal y como se hace con la edad en

        C:\u-mooc\controllers\utils.py (4 hits)
Line 324:             student.age = self.request.get('form02')
indicando tu formulario
2.- Añadir el dato a la información del estudiante, claro, para que pueda verlo cuando el quiera, en edad se hace así,

C:\u-mooc\views\student_profile.html (1 hit)
Line 43:           <td>{{ student.age }}</td>

Solo tienes que añadir otra linea parecida.

Se que todo esto es complicado y que sería mas sencillo desde el panel de control pero es bueno conocer todos los entresijos de una plataforma completamente abierta.

Espero que lo consigas.

María Salud Carmona

unread,
Apr 20, 2013, 11:15:20 PM4/20/13
to u-m...@googlegroups.com
Hola Enrique, muchas gracias.

Entiendo lo que dices de recoger datos de una lista, entiendo entonces tendría que hacer de nuevo la modificación en views/register.html y en models/model.py ¿no? Mi problema es que aunque he instalado cosillas y eso, solo puedo basarme en lo que ya  viene puesto porque no sé interpretar el código, jaja. Cuando he tenido que tocar el código, lo hago por imitación de lo que viene. Entonces, para hacer eso que comentas, en lugar de lo que yo he puesto en  views/register.html:
             <li>
            <label class="form-label" for="form03">
            {% trans %} ¿Cual es tu pais? {% endtrans %}
            </label>
             <input name="form03" type="text">
            </li>
¿Qué se pone para listado en ese archivo?

y en models/model.py vienen 3 tipos de atributos en la documentación, entre ellos el que yo he colocado. El que habría que poner para una lista es ¿db.IntegerProperty, db.TextProperty o db.StringProperty?

Sigo de todos modos adelante con lo que me comentas del utils.py.

Saludos y gracias.

Enrique Sánchez Acosta

unread,
Apr 21, 2013, 3:34:54 AM4/21/13
to u-m...@googlegroups.com
Hola
Estoy seguro que lo conseguirás y entiendo que sin saber nada de programación te cueste un poco, no te preocupes.
En vez de un  <input name="form03" type="text"> solamente tienes que poner un <select name="form3"> y todo lo demás para que aparezca un código con opciones como este: (con form03 o país o cualquier otro nombre que es el que vas a usar para recoger luego los datos.

A mi me gusta mas que los nombres vengan en su correspondiente idioma, lógico, pero de momento esto te puede servir si los pones en el idioma del curso.
Así nadie puede poner nada extraño y en la bbdd te aparecerá el código de dos letras

<select name="form03">
<option value="AF">Afganistán</option>
<option value="AL">Albania</option>
<option value="DE">Alemania</option>
<option value="AD">Andorra</option>
<option value="AO">Angola</option>
<option value="AI">Anguilla</option>
<option value="AQ">Antártida</option>
<option value="AG">Antigua y Barbuda</option>
<option value="AN">Antillas Holandesas</option>
<option value="SA">Arabia Saudí</option>
<option value="DZ">Argelia</option>
<option value="AR">Argentina</option>
<option value="AM">Armenia</option>
<option value="AW">Aruba</option>
<option value="AU">Australia</option>
<option value="AT">Austria</option>
<option value="AZ">Azerbaiyán</option>
<option value="BS">Bahamas</option>
<option value="BH">Bahrein</option>
<option value="BD">Bangladesh</option>
<option value="BB">Barbados</option>
<option value="BE">Bélgica</option>
<option value="BZ">Belice</option>
<option value="BJ">Benin</option>
<option value="BM">Bermudas</option>
<option value="BY">Bielorrusia</option>
<option value="MM">Birmania</option>
<option value="BO">Bolivia</option>
<option value="BA">Bosnia y Herzegovina</option>
<option value="BW">Botswana</option>
<option value="BR">Brasil</option>
<option value="BN">Brunei</option>
<option value="BG">Bulgaria</option>
<option value="BF">Burkina Faso</option>
<option value="BI">Burundi</option>
<option value="BT">Bután</option>
<option value="CV">Cabo Verde</option>
<option value="KH">Camboya</option>
<option value="CM">Camerún</option>
<option value="CA">Canadá</option>
<option value="TD">Chad</option>
<option value="CL">Chile</option>
<option value="CN">China</option>
<option value="CY">Chipre</option>
<option value="VA">Ciudad del Vaticano (Santa Sede)</option>
<option value="CO">Colombia</option>
<option value="KM">Comores</option>
<option value="CG">Congo</option>
<option value="CD">Congo, República Democrática del</option>
<option value="KR">Corea</option>
<option value="KP">Corea del Norte</option>
<option value="CI">Costa de Marfíl</option>
<option value="CR">Costa Rica</option>
<option value="HR">Croacia (Hrvatska)</option>
<option value="CU">Cuba</option>
<option value="DK">Dinamarca</option>
<option value="DJ">Djibouti</option>
<option value="DM">Dominica</option>
<option value="EC">Ecuador</option>
<option value="EG">Egipto</option>
<option value="SV">El Salvador</option>
<option value="AE">Emiratos Árabes Unidos</option>
<option value="ER">Eritrea</option>
<option value="SI">Eslovenia</option>
<option value="ES" selected>España</option>
<option value="US">Estados Unidos</option>
<option value="EE">Estonia</option>
<option value="ET">Etiopía</option>
<option value="FJ">Fiji</option>
<option value="PH">Filipinas</option>
<option value="FI">Finlandia</option>
<option value="FR">Francia</option>
<option value="GA">Gabón</option>
<option value="GM">Gambia</option>
<option value="GE">Georgia</option>
<option value="GH">Ghana</option>
<option value="GI">Gibraltar</option>
<option value="GD">Granada</option>
<option value="GR">Grecia</option>
<option value="GL">Groenlandia</option>
<option value="GP">Guadalupe</option>
<option value="GU">Guam</option>
<option value="GT">Guatemala</option>
<option value="GY">Guayana</option>
<option value="GF">Guayana Francesa</option>
<option value="GN">Guinea</option>
<option value="GQ">Guinea Ecuatorial</option>
<option value="GW">Guinea-Bissau</option>
<option value="HT">Haití</option>
<option value="HN">Honduras</option>
<option value="HU">Hungría</option>
<option value="IN">India</option>
<option value="ID">Indonesia</option>
<option value="IQ">Irak</option>
<option value="IR">Irán</option>
<option value="IE">Irlanda</option>
<option value="BV">Isla Bouvet</option>
<option value="CX">Isla de Christmas</option>
<option value="IS">Islandia</option>
<option value="KY">Islas Caimán</option>
<option value="CK">Islas Cook</option>
<option value="CC">Islas de Cocos o Keeling</option>
<option value="FO">Islas Faroe</option>
<option value="HM">Islas Heard y McDonald</option>
<option value="FK">Islas Malvinas</option>
<option value="MP">Islas Marianas del Norte</option>
<option value="MH">Islas Marshall</option>
<option value="UM">Islas menores de Estados Unidos</option>
<option value="PW">Islas Palau</option>
<option value="SB">Islas Salomón</option>
<option value="SJ">Islas Svalbard y Jan Mayen</option>
<option value="TK">Islas Tokelau</option>
<option value="TC">Islas Turks y Caicos</option>
<option value="VI">Islas Vírgenes (EEUU)</option>
<option value="VG">Islas Vírgenes (Reino Unido)</option>
<option value="WF">Islas Wallis y Futuna</option>
<option value="IL">Israel</option>
<option value="IT">Italia</option>
<option value="JM">Jamaica</option>
<option value="JP">Japón</option>
<option value="JO">Jordania</option>
<option value="KZ">Kazajistán</option>
<option value="KE">Kenia</option>
<option value="KG">Kirguizistán</option>
<option value="KI">Kiribati</option>
<option value="KW">Kuwait</option>
<option value="LA">Laos</option>
<option value="LS">Lesotho</option>
<option value="LV">Letonia</option>
<option value="LB">Líbano</option>
<option value="LR">Liberia</option>
<option value="LY">Libia</option>
<option value="LI">Liechtenstein</option>
<option value="LT">Lituania</option>
<option value="LU">Luxemburgo</option>
<option value="MK">Macedonia, Ex-República Yugoslava de</option>
<option value="MG">Madagascar</option>
<option value="MY">Malasia</option>
<option value="MW">Malawi</option>
<option value="MV">Maldivas</option>
<option value="ML">Malí</option>
<option value="MT">Malta</option>
<option value="MA">Marruecos</option>
<option value="MQ">Martinica</option>
<option value="MU">Mauricio</option>
<option value="MR">Mauritania</option>
<option value="YT">Mayotte</option>
<option value="MX">México</option>
<option value="FM">Micronesia</option>
<option value="MD">Moldavia</option>
<option value="MC">Mónaco</option>
<option value="MN">Mongolia</option>
<option value="MS">Montserrat</option>
<option value="MZ">Mozambique</option>
<option value="NA">Namibia</option>
<option value="NR">Nauru</option>
<option value="NP">Nepal</option>
<option value="NI">Nicaragua</option>
<option value="NE">Níger</option>
<option value="NG">Nigeria</option>
<option value="NU">Niue</option>
<option value="NF">Norfolk</option>
<option value="NO">Noruega</option>
<option value="NC">Nueva Caledonia</option>
<option value="NZ">Nueva Zelanda</option>
<option value="OM">Omán</option>
<option value="NL">Países Bajos</option>
<option value="PA">Panamá</option>
<option value="PG">Papúa Nueva Guinea</option>
<option value="PK">Paquistán</option>
<option value="PY">Paraguay</option>
<option value="PE">Perú</option>
<option value="PN">Pitcairn</option>
<option value="PF">Polinesia Francesa</option>
<option value="PL">Polonia</option>
<option value="PT">Portugal</option>
<option value="PR">Puerto Rico</option>
<option value="QA">Qatar</option>
<option value="UK">Reino Unido</option>
<option value="CF">República Centroafricana</option>
<option value="CZ">República Checa</option>
<option value="ZA">República de Sudáfrica</option>
<option value="DO">República Dominicana</option>
<option value="SK">República Eslovaca</option>
<option value="RE">Reunión</option>
<option value="RW">Ruanda</option>
<option value="RO">Rumania</option>
<option value="RU">Rusia</option>
<option value="EH">Sahara Occidental</option>
<option value="KN">Saint Kitts y Nevis</option>
<option value="WS">Samoa</option>
<option value="AS">Samoa Americana</option>
<option value="SM">San Marino</option>
<option value="VC">San Vicente y Granadinas</option>
<option value="SH">Santa Helena</option>
<option value="LC">Santa Lucía</option>
<option value="ST">Santo Tomé y Príncipe</option>
<option value="SN">Senegal</option>
<option value="SC">Seychelles</option>
<option value="SL">Sierra Leona</option>
<option value="SG">Singapur</option>
<option value="SY">Siria</option>
<option value="SO">Somalia</option>
<option value="LK">Sri Lanka</option>
<option value="PM">St Pierre y Miquelon</option>
<option value="SZ">Suazilandia</option>
<option value="SD">Sudán</option>
<option value="SE">Suecia</option>
<option value="CH">Suiza</option>
<option value="SR">Surinam</option>
<option value="TH">Tailandia</option>
<option value="TW">Taiwán</option>
<option value="TZ">Tanzania</option>
<option value="TJ">Tayikistán</option>
<option value="TF">Territorios franceses del Sur</option>
<option value="TP">Timor Oriental</option>
<option value="TG">Togo</option>
<option value="TO">Tonga</option>
<option value="TT">Trinidad y Tobago</option>
<option value="TN">Túnez</option>
<option value="TM">Turkmenistán</option>
<option value="TR">Turquía</option>
<option value="TV">Tuvalu</option>
<option value="UA">Ucrania</option>
<option value="UG">Uganda</option>
<option value="UY">Uruguay</option>
<option value="UZ">Uzbekistán</option>
<option value="VU">Vanuatu</option>
<option value="VE">Venezuela</option>
<option value="VN">Vietnam</option>
<option value="YE">Yemen</option>
<option value="YU">Yugoslavia</option>
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabue</option>
</select>

María Salud Carmona

unread,
Apr 21, 2013, 10:01:07 PM4/21/13
to u-m...@googlegroups.com
Gracias Enrique, lo entiendo ahora perfectamente. A mí todo esto de códigos y  toquetear archivos me encanta la verdad, así que creo que lo importante es tener ganas de hacerlo y aprender. Tal y como lo has planteado, que tengamos que mirar el código y eso, hace que de camino, aparte de preparar Course Builder para un MOOC, aprendamos muchas cosas más.

Sigo adelante, gracias por todo.
Reply all
Reply to author
Forward
0 new messages