12

我已经看到了几个类似的其他属性的帖子,但不是这个。Python 和 Django 的新手——我已经完成了几个教程的第一部分,包括 Django 的“民意调查”教程,当我为我的应用程序同步数据库时,我总是得到 'AttributeError: 'module' object has no attribute CharField .

在模型中,我完全按照教程所述复制:

从 django.db 导入模型

class Poll(models.Model):
    question = models.Charfield(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()
# Create your models here.

'polls' 也被添加到已安装的应用程序中,我使用的是 sqlite3、windows 7、python 2.7。

非常感谢任何帮助!(我正在努力学习!)

4

7 回答 7

53

也就是说CharField,使用大写的“f”,而不是Charfield像您的代码中那样。

于 2012-06-22T21:33:02.617 回答
11

我认为您正在使用 forms.py

from django.forms import forms

请使用这个

from django import forms
于 2017-03-31T09:37:52.973 回答
3

更改charfield为:

CharField(max_length = 10)

两者都C应该F大写

于 2018-09-06T16:55:11.437 回答
0

用这个 from django.db import models

于 2019-07-25T10:49:06.217 回答
0

我有同样的错误,但以下代码对我有用:

from django.db import models
#Create your models here.

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

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

只需将 charfield() 更改为 charField() ..

于 2017-09-09T16:09:29.630 回答
0

这个 :

  question = models.CharField(max_length=200)

代替 :

  question = models.Charfield(max_length=200)
于 2021-01-03T07:03:08.900 回答
0

在 modelPoll中,of 的拼写CharField格式不正确。即你用小写字母f代替大写字母F。所以,替换CharfieldCharField。你可以看到下面的代码:

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published') class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()
于 2019-04-17T11:23:17.917 回答