【问题标题】:TypeError: 'question_text' is an invalid keyword argument for this function in django 2.0 tutorialTypeError: 'question_text' is an invalid keyword argument for this function in django 2.0 tutorial
【发布时间】:2017-12-07 02:58:21
【问题描述】:

我是 django 的新手,我正在尝试按照教程 (https://docs.djangoproject.com/en/2.0/intro/tutorial02/) 进行操作,但遇到了上述错误。

这是我的models.py代码

import datetime

from django.db import models
from django.utils import timezone

# 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

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)


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.choice_text

问题文本和选择文本也没有出现在 django-admin 页面上

【问题讨论】:

  • 那个错误出现在哪里?您是否运行了 makemigrations 并进行了迁移?
  • 是的,我已经完成了 makemigrations 并且也进行了迁移。当我在 shell 上手动创建问题时,它们就会出现。
  • 数据库中还有其他Question 对象吗?请转到 shell 并输入 from <your_app>.models import Question 然后 Question._meta.get_fields() 并输入什么返回
  • 这是我得到的:(, )

标签: django python-3.x


【解决方案1】:

当您的表中没有该字段时,会出现此错误。正如您向我展示的那样,仅注册了两个字段(Idpub_date)。请进行迁移并再次迁移,如果这不起作用,请删除文件夹 migrations 中的所有内容并再次进行迁移

【讨论】:

  • 模型似乎没有正确迁移。我试图删除民意调查应用程序的迁移文件夹并进行迁移,makemigrations 但问题仍然相同。
  • @AbrielJohnGabriel 检查迁移文件夹中的文件是否存在并包含所有字段
  • 是的,他们在那里。
【解决方案2】:

在 django 中,modelname_somefieldname 是系统运算符语法,因此您的错误原因是 question_text 关键字包含 question_question 是型号名称。

【讨论】:

    猜你喜欢
    • 2020-02-06
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多