获取“first_name”的Django是此函数的无效关键字参数“创建模型类实例时的TypeError”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取“first_name”的Django是此函数的无效关键字参数“创建模型类实例时的TypeError”相关的知识,希望对你有一定的参考价值。
如果相关,请使用Django 1.11和django-pyodbc-azure最新版本。
我是Django的新手,并一直关注1.11教程,没有任何问题,直到这一点,我非常困惑。
这是我的models.py:
from django.db import models
# Create your models here.
class Player(models.Model):
first_name = models.CharField(max_length=20, name='First Name')
last_name = models.CharField(max_length=20, name='Last Name')
def __str__(self):
return '{}, {} ({})'.format(self.last_name, self.first_name, self.id)
class Game(models.Model):
players = models.ManyToManyField(Player, name='Players')
def __str__(self):
return ' vs. '.join(self.players)
class Round(models.Model):
GIN = 'GI'
UNDERCUT = 'UN'
KNOCK = 'KN'
ENDING_ACITONS = (
(GIN, 'Gin'),
(UNDERCUT, 'Undercut'),
(KNOCK, 'Knock'),
)
game = models.ForeignKey(Game, on_delete=models.CASCADE, name='Parent Game')
winner = models.ForeignKey(Player, on_delete=models.CASCADE, name='Winning Player')
points = models.IntegerField(name='Points Awarded')
end = models.CharField(max_length=2, choices=ENDING_ACITONS)
def __str__(self):
return '{} awarded {} points via {}'.format(self.winner, self.points, self.end.name)
现在当我运行manage.py shell并输入:
from game.models import *
bobby = Player(first_name='Bobby', last_name='Fisher')
我遇到了这个错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:UsersmteperPycharmProjectsGinRummyvenvlibsite-packagesdjangodbmodelsase.py", line 571, in __init__
raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
TypeError: 'first_name' is an invalid keyword argument for this function
任何见解都会非常感激,因为,正如我之前所说,我是Django和Python的新手。
答案
这是导致问题的name
论点。你应该设置verbose_name
。
class Player(models.Model):
first_name = models.CharField(max_length=20, verbose_name='First Name')
last_name = models.CharField(max_length=20, verbose_name='Last Name')
以上是关于获取“first_name”的Django是此函数的无效关键字参数“创建模型类实例时的TypeError”的主要内容,如果未能解决你的问题,请参考以下文章
在 Django 用户模型中需要 first_name 和 last_name
Django request.user.first_name 在 Safari 中不起作用
创建配置文件时,django social auth 不返回 first_name 和 last_name - django 1.5