[pyar] Modelos Django

Pablo SEMINARIO pabluk en gmail.com
Jue Nov 21 05:03:14 ART 2013


Hola,


2013/11/21 Mati Barriento <elmatibarriento en gmail.com>

> 2 dudas de django y sus modelos.
>
> 1) tengo esto en un script que no es aplicacion django. (esto junta datos
> que despúes quiero pasarle a django.
>
> from django.db import models
>
> class Persona(self, models.Model):
>          self.Nombre = models.CharField(max_length = 50)
>
> da este error
>
> django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES,
> but settings are not configured. You must either define the environment
> variable DJANGO_SETTINGS_MODULE or call settings.configure() before
> accessing settings.
>
>
> a) no se puede hacer lo que hago y me conviene "tranformar la clase" a
> modelo de django?
> b) si se puede pero tengo un error?
>
> Considerar que son 2 aplicaciones diferentes y me parecio que podia
> hacerlo simple si usaba clases iguales.
>
> Quizás lo que querés hacer no es la manera mas ortodoxa pero es totalmente
valido.
En todo caso lo que te dice el error es que django no encuentra tu archivo
settings.py del tu proyecto django, para saber donde esta la BD del modelo
Persona. Acá[1] hay una explicación mas detallada. Pero yo te recomendaría
que lo implementes como un comando de django (manage.py) porque te va a
ayudar a mejor estructurar tu proyecto.
Y tu código yo creo que deberías escribirlo como

class Persona(models.Model):
    nombre = models.CharField(max_length=50)

para respetar las convenciones de estilo[2] que sugiere Django.


>
> 2) Uno de los atributos de la clase tiene que ser una lista, como tags,
> hay un field de django que acepte que le pase una lista o debo despedazarlo
> en un string y meterlo en un TextField ?
>
> Para esto tenes varias opciones, depende de tu contexto.
La primera seria usar solamente un CharField y adentro pasar un string con
"tag1, tag2" (sin las comillas) y usando una coma (,) como separador u otro
caracter. Y después podes separar los tags con split() o definiendo tu
propio tipo de field[3]
La otra es usar relaciones del tipo ManyToManyField[4] te permite mas
flexibilidad pero es mas complejo de manejar.
Y la ultima opción que se me ocurre es usar alguna app django que exista,
acá[5] podes encontrar varias para ver cual te convence mas.

[1] http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/
[2]
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/#model-style
[3] https://docs.djangoproject.com/en/dev/howto/custom-model-fields/
[4] https://docs.djangoproject.com/en/dev/ref/models/fields/#manytomanyfield
[5] https://www.djangopackages.com/grids/g/tagging/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20131121/d3d54845/attachment.html>


More information about the pyar mailing list