Django 教程第 2 步

Django Tutorial Step 2

我在 django 教程的 shell 部分我将 ____str____ 方法添加到 polls/models.py

这是我的 models.py:

from __future__ import unicode_literals
from django.db import models

# Create your models here.


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __str__(self):
        return self.question_text


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.question_text


class Question(models.Model):
    # ...
    def was_published_recently(self):

但是,当我 运行 我的服务器出现此错误时:

ERRORS:
polls.Choice.question: (fields.E300) Field defines a relation with model    'Question', which is either not installed, or is abstract.

谁能告诉我我哪里搞砸了 models.py 我找不到该教程的完整示例。

你不应该有两个名为 Question 的模型 class 删除第二个并将函数移到第一个 Question class.

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __str__(self):
        return self.question_text

    def was published_recently(self):
        ##

您创建了 2 个模型,名称为 问题。所以请删除第二个 one.It 造成的冲突,这就是选择 class 找不到 问题 模型的原因。