繁体   English   中英

Python / Django AttributeError“对象'玩家'没有属性'字段'

[英]Python/Django AttributeError "Object 'players' has no attribute 'fields'

我正在设置管理页面,以便我可以使用它来添加数据,在这种情况下是玩家。 当你去尝试在admin.py中注册Players类时,你会得到问题标题中描述的错误(对象'players'没有属性'fields')。 通过views.py查看我从下面粘贴了一个片段,我看不出它可能指的是什么。

对不起,如果这是一个noob问题,我对django和python都很新。

class Players(models.Model):
    player_id        = models.IntegerField(primary_key=True)
    firstname        = models.CharField(max_length=50)
    lastname         = models.CharField(max_length=50)
    team             = models.ForeignKey(Teams)
    Top200rank       = models.IntegerField(null=True, blank=True)
    position         = models.CharField(max_length=25)
    roster_status    = models.ForeignKey(RosterStatus, null=True, blank=True)
    class Meta:
        ordering = ('lastname', 'firstname')
        verbose_name_plural = 'Players'

    def __unicode__(self):
        return u"%s %s" % (self.firstname, self.last_name)

修复在admin.py中,见下文。

之前:

#foozball admin python file

from foozball.leaguemanager.models import Division, Games, RosterStatus, Teams, Players
from django.contrib import admin

admin.site.register(Teams, Players)

后:

foozball管理python文件

from foozball.leaguemanager.models import Division, Games, RosterStatus, Teams, Players
from django.contrib import admin

admin.site.register(Teams)
admin.site.register(Players)

您获得的具体错误很重要:

Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/
Exception Type: AttributeError
Exception Value:    
type object 'Player' has no attribute 'fields'

这个错误确实来自这条线,

admin.site.register(Teams, Players)

但更具体地来说,事实上,如你所做的那样配对两个模型意味着一些相当具体的事实,即第二个对象(这里是玩家)是与第一个对象相关联的模型管理对象(这里是团队,总是一个Django模型)。 模型管理对象必须具有属性“fields”,该属性提供有关在使用管理界面时如何显示单个模型的属性字段的信息。 由于Players不是模型管理对象,并且没有名为'fields'的属性,因此Djagno引发了异常。 点击此处获取更多信息

正如您所猜测的那样,快速解决这种情况,将它们分成不同的寄存器调用:

admin.site.register(Teams)
admin.site.register(Players)

我得到了相同的错误消息,在我的情况下,我忘记从models.Admin继承我的Admin类

之前:

from django.contrib import admin

class TeamAdmin:
    fields = ['name', 'age']

后:

from django.contrib import admin

class TeamAdmin(admin.ModelAdmin):
    fields = ['name', 'age']

你设置了ModelAdmin吗?

class PlayersAdmin(admin.ModelAdmin):

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM