2009-06-28 21 views
18

¿Cómo asigno los valores iniciales a los campos dentro de un ModelForm? por ejemplo:Cómo dar un valor inicial en el modelo

class Form1(forms.Form): 
    title=forms.CharField(initial="hello") 

¿Cuál será el equivalente para esta usando ModelForm cuya sintaxis básica es algo así como:

class Form2(djangoforms.ModelForm): 
    class Meta: 
     model=SomeModel 
     fields=('title',) 

Lo que estoy tratando de hacer es generar un CRUD. Como lo hago en un proyecto de appengine, no puedo usar vistas genéricas. Appengine nos ha proporcionado djangoforms.ModelForm que funciona igual que el ModelForm de django, pero usa el almacén de datos de appengine.

Necesito la funcionalidad anterior para hacer la parte "editar".

+0

relacionadas: http://stackoverflow.com/q/604266/212218 –

Respuesta

24

Normalmente pasaría el objeto modelo que está editando como instancia keyword arg a la forma: Form2(instance = somemodelobject), pero no sé si funciona en GAE. Siempre se puede pasar diccionario inicial al constructor de su formulario, como

Form2(initial = {"title": "blahblah"}) 
+1

gracias, tanto los métodos le diste trabajo ... – Dhushyanth

4

defecto Formulario tipo están tomadas de la modelo en sí. Por ejemplo:

class SomeModel(models.Model): 
    title = models.CharField(max_length=45, default="hello") 

No es necesario hacer ningún cambio en su ModelForm:

class RequestForm(forms.ModelForm): 

    class Meta: 
     model = SomeModel 
Cuestiones relacionadas