2011-06-30 14 views

Respuesta

19

La única manera es adivinar. Me gustaría empezar por mirar la fecha de creación del archivo settings.py (u otros archivos de proyecto de base)

Fechas de estreno de versiones:

  • 1.0: Septiembre de 2008.
  • 1.1 (?): 29 de de julio de, 2009 [1]
  • 1.2: 17 de mayo de 2010 [2]
  • 1.3: 23 Marzo, 2011 [3]

Tener en su urls.py: [4]

from django.conf.urls.defaults import * 
from django.contrib import admin 

o tener un archivo en una aplicación admin.py [5] sugiere que se trata de un proyecto 1.0+.

Tener en su urls.py: [6]

(r'^admin/', include(admin.site.urls)), 

sugeriría 1.1+.

Tener en su archivo settings.py:

DATABASES = { 
    'default': { 
     'NAME': 'app_data', 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'USER': 'postgres_user', 
     'PASSWORD': 's3krit' 
    }, 
    'users': { 
     'NAME': 'user_data', 
     'ENGINE': 'django.db.backends.mysql', 
     'USER': 'mysql_user', 
     'PASSWORD': 'priv4te' 
    } 
} 

sugeriría 1.2+.

[1]: 1.1 release notes

[2]: 1.2 release notes

[3]: 1.3 release notes

[4]: ​​Backwards Incompatible changes 0.96 > 1.0

[5]: Backwards Incompatible changes 0.96 > 1.0

[ 6]: Multiple databases

+2

Esto le dirá la versión * actual * de Django, no la versión para la que se creó el proyecto. –

+0

@Ignacio Ah eso es correcto. Supuse que era un proyecto en marcha. –

+0

@jJames Khoury En realidad, estoy tratando de ejecutar el proyecto, pero me pierdo qué versión de Django usar. No es un proyecto en ejecución. Quiero decir que era un proyecto en ejecución, ahora estoy depurando algunas de las características. –

11

Puede adivinar según la forma en que se configura settings.py. Su primera sugerencia sería desde database settings. La antigua forma previa a Django 1.2 fue:

DATABASE_ENGINE = 'sqlite3'   # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
DATABASE_NAME = os.path.join(BASE_DIR, 'db')    # Or path to database file if using sqlite3. 
#DATABASE_USER = ''    # Not used with sqlite3. 
#DATABASE_PASSWORD = ''   # Not used with sqlite3. 
#DATABASE_HOST = ''    # Set to empty string for localhost. Not used with sqlite3. 
#DATABASE_PORT = ''    # Set to empty string for default. Not used with sqlite3. 

Este método todavía se admite hasta 1,3 pero ahora hace Django a quejarse en voz alta acerca de ser obsoleta.

A partir de Django 1.2 el siguiente formato se utiliza:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(PROJECT_DIR, 'mycms.db'), 
    } 
} 

Si bien esto no es definitivo, sí al menos a dar una pista acerca de si su aplicación fue escrito antes o después de Django 1.2.

Tenga en cuenta que una aplicación escrita en una versión anterior de Django debería funcionar, pero es probable que reciba muchas advertencias de desaprobación en la consola si el código hace referencia a elementos que han sido obsoletos o simplemente se han movido. .

Estas advertencias generalmente se pueden ignorar de forma segura a corto plazo, pero definitivamente debe tomarse un tiempo para silenciarlas actualizando su código para hacer referencia a las funciones en su nuevo hogar/formato. Los desarrolladores de Django hacen un buen trabajo al hacer lo correcto en cuanto a dar suficiente tiempo y advertencias para que la funcionalidad más antigua se migre correctamente con el paso del tiempo.

+0

+1 para las advertencias depreciadas. Esta es una excelente manera de averiguarlo. –

7

Veo la respuesta aceptada anteriormente y creo que es mucho más fácil. Tal vez me esté perdiendo algo, pero esto es lo que haría.

Abra un terminal python que tenga el proyecto Django en su camino.

$ python 
>>> import django 
>>> print django.get_version() 
0.97-pre-SVN-7668 

Ese número de versión es estrictamente ilustrativo. El tuyo puede diferir, espero.

+4

ya para obtener la versión de django instalada, la que ha publicado es mucho más fácil. Pero eso no es lo que necesitaba. Quería saber la versión de django para la que se creó mi proyecto. –

+1

Llego con algo de experiencia en rails y para obtener la versión que usa una aplicación, solo tiene que verificar el archivo gemfile o con la versión anterior tenía que verificar algunos archivos de configuración. En realidad, las dos respuestas anteriores me ayudaron mucho ya que soy nuevo en django. De todos modos, gracias. –

+2

o simplemente podría hacer 'django-admin.py --version' para obtener la versión de la versión de django instalada actualmente –

1

Esto funciona en Django 1.7:

import django 
django.VERSION 

... que produce (en mi máquina):

(1, 7, 0, 'rc', 3) 
+0

¿Le importaría al infractor agregar un comentario sobre por qué se bajó la votación? Una respuesta similar es la que mejor se votó aquí: http://stackoverflow.com/questions/6468397/how-to-check-django-version – Patrick

+0

¿No le diría esto únicamente la versión que se instaló y no la versión de la que depende la aplicación? ¿en? – Ramy

Cuestiones relacionadas