'question_text'是此函数的无效关键字参数

时间:2017-07-12 21:23:07

标签: python django

我正在尝试按照民意调查教程我从项目中包含urls.py和从民意调查目录中包含models.py

q = Question(question_text="some text", pub_date=timezone.now))

导致以下错误:

'question_text' is  an invalid keyword argument for this function.

mysite的/ urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

轮询/ models.py

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

# Create your models here.

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


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

2 个答案:

答案 0 :(得分:0)

如果您在django shell中执行此操作,首先需要导入正在使用的模型,在您需要导入模型问题

的情况下 让我们从头开始回忆一切。

第1步:激活您的shell

python manage.py shell

第2步:导入模型问题并导入时区

from polls.models import Question
from django.utils import timezone

第3步:现在运行查询

q = Question(question_text="What's new?", pub_date=timezone.now())

如果您注意到,根据您的问题,这就是您做错了。

第4步:运行保存方法

q.save()

所有这些都是w.r.t Polls Tutorial玩api。

答案 1 :(得分:0)

我认为在学习教程时你已经做了很多代码更改,而这些没有反映在sql数据库中。

因此,在执行上述步骤之前,请按照以下步骤进行操作。

python manage.py migrate
python manage.py makemigrations polls
python manage.py migrate

现在就这样做

python manage.py shell 
from polls.models import Question 
from django.utils import timezone 
q = Question(question_text="What's new?", pub_date=timezone.now() 
q.save()