2015-12-21 18 views
5

Con Python 2.7.x + Django 1.9:Newbie Django modello di errore

creo un nuovo super-progetto semplice scheletro di Django con django-admin startproject simple

Come un controllo di integrità, crea un file con un semplice views.py vista che emette un messaggio di test di tipo "ciao mondo" e un percorso di url per quella vista. Posso eseguire questo con python manage.py runserver e funziona bene.

Creo un file models.py con una sola classe di modello Django ORM super semplice. Cordiali saluti, il mio obiettivo è utilizzare tabelle e schemi esistenti, quindi non voglio che l'ORM generi nuove tabelle.

class SuperSimpleModel(models.Model): 
    some_value = models.CharField(blank=True, null=True) 

    class Meta: 
     managed = False 
     db_table = 'model_test_table' 

Semplicemente aggiungendo import models al mio codice views.py provoca il seguente errore avvenga all'avvio server con python manage.py runserver:

"RuntimeError: Model class simple.models.SuperSimpleModel doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded."

Presumo che la mia domanda non è in fase di inizializzazione in modo corretto? Ho bollito questo problema fino al semplice insieme di passaggi riproducibili. Non ho cambiato nulla in settings.py nei passaggi precedenti. Normalmente, avrei bisogno di configurare il database, ma posso riprodurre l'errore senza nemmeno farlo.

+0

prova ad aggiungere "SuperSimpleModel" in INSTALLED_APPS nel file di configurazione – Zartch

risposta

8

È corretto in che è necessario modificare le impostazioni qui. Ad esempio, vedere this Django tutorial step.

A giudicare da ciò che hai fornito qui, sembra che dovrai aggiungere 'simple' all'impostazione INSTALLED_APPS. In modo che l'impostazione finirebbe cercando qualcosa di simile:

INSTALLED_APPS = [ 
    'simple', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

noti che 'simple', di per sé, potrebbe non essere appropriato, visto come il vostro PYTHONPATH è impostato. Potrebbe essere necessario aggiungere un percorso più specifico all'applicazione, come ha fatto il precedente passaggio del tutorial con 'polls.apps.PollsConfig'.

+0

. Questo era totalmente nel tutorial. Grazie! – clay

0

Ho affrontato un problema simile e si è scoperto che il mio interprete aveva sbagliato le impostazioni del percorso Python. Se la risposta precedente non aiuta, controlla. Dovrebbe contenere il percorso della directory su cui è gestita manage.py.