gpt4 book ai didi

python - Django 1.9 中的模型。类型错误 : __init__() got multiple values for argument 'verbose_name'

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:51 30 4
gpt4 key购买 nike

我有 Python 3.5 和 Django 1.9尝试做下一个

class Question(models.Model):
def __init__(self, *args, question_text=None, pub_date=None, **kwargs):
self.question_text = question_text
self.pub_date = pub_date
question_text = models.CharField(max_length=200, verbose_name="Question")
pub_date = models.DateTimeField('date_published', verbose_name="Date")

def __str__(self):
return self.question_text

def __unicode__(self):
return self.question_text

class Meta:
verbose_name = "Question"

但是报错了

File "/home/donotyou/PycharmProjects/djangobook/polls/models.py", line 15, in Question pub_date = models.DateTimeField('date_published', verbose_name="Date") TypeError: init() got multiple values for argument 'verbose_name'

请帮忙

最佳答案

您不需要在 Django 中覆盖 __init__。 Django 会为您做所有事情,您只需要定义您的模型就可以了。

但是你得到的错误是因为 pub_date = models.DateTimeField('date_published', verbose_name="Date") 这里你设置了 verbose_name 两次,因为第一次django Field 的参数是 verbose_name 之后你设置相同的 verbose_name 使两个相同的参数传递给类。

所以基本上你需要做的是:

class Question(models.Model):
question_text = models.CharField(max_length=200, verbose_name="Question")
pub_date = models.DateTimeField('date_published') # or pub_date = models.DateTimeField("Date")

def __str__(self):
return self.question_text

def __unicode__(self):
return self.question_text

class Meta:
verbose_name = "Question"

注意:在大多数情况下,将 verbose_name 作为第一个参数传递而不带任何 verbose_name=(关系字段除外)更具可读性。来自 docs :

Each field type, except for ForeignKey, ManyToManyField and OneToOneField, takes an optional first positional argument – a verbose name. If the verbose name isn’t given, Django will automatically create it using the field’s attribute name, converting underscores to spaces.

关于python - Django 1.9 中的模型。类型错误 : __init__() got multiple values for argument 'verbose_name' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39826485/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com