2016-04-05 9 views
0

Ich definierte ein Fragenmodell mit einer Beschreibung und einem Fremdschlüssel.Modell nicht definiert

class Question(models.Model): 
    user = models.ForeignKey(
     User, 
     verbose_name="User", 
     default=None 
    ) 

    description = models.CharField(
     max_length=60, 
     #verbose_name=_("Description"), 
    ) 

Danach habe ich die Migrationen ausgeführt.

Dann in views.py habe ich eine Methode, die Objekte dieses Modells zugreift:

def own_questions(request): 
    questions = Question.objects() 
    return JsonResponse(questions) 

Das Problem ist, dass, wenn ich die URL /questions dieser Methode entspricht aufzurufen, erhalte ich:

NameError at /questions/ 
global name 'Question' is not defined 

Warum passiert das?

Antwort

2

Sie müssen Questions importieren in Ihrem views.py importiert haben:

from app.models import Question 

Auch questions = Question.objects nur geben du den queryset-manager und du kannst das nicht aufrufen, stattdessen brauchst du für alle fragen :

questions = Question.objects.all() 

Edit:

Ich sollte nicht davon ausgehen, was Sie von Modell Question, abzufragen versuchen, hier ist also django doc über how to write ORM for queries.

+0

Da die Methode own_questions ist, vermute ich, dass das OP eigentlich Question.objects.filter (user = request.user) will (mit möglicherweise etwas zusätzlichen Code, um nicht angemeldete Benutzer zu behandeln) – Foon

3

Wahrscheinlich, weil Sie nicht

from .models import Question

in Ihr views.py