Python-登录后Django站点管理页面为空

时间:2018-12-12 03:54:05

标签: python django django-models django-views django-admin

我正在尝试制作井字游戏。我的Django网站管理页面显示为空白,我无法解决。

enter image description here

from django.db import models
from django.db.models import Q
from django.contrib.auth.models import User

GAME_STATUS_CHOICES ={
    ('F','First Player to move'),
    ('S', 'Second Player to move'),
    ('W', 'First Player Wins'),
    ('L', 'Second player Wins'),
    ('D', 'Draw')
}

class GameQuerySet(models.QuerySet):
    def games_for_user(self, user):
        return self.filter(
            Q(first_player = user) | Q(second_player = user) 
    )

def active(self):
    return  self.filter(
        Q(status='F') | Q(status='S')
    )


class Game(models.Model):
    first_player = models.ForeignKey(User, related_name = 
        "game_first_player", on_delete=models.CASCADE)
    second_player = models.ForeignKey(User, related_name = 
        "game_second_player", on_delete=models.CASCADE)
    start_time = models.DateTimeField(auto_now_add=True)
    last_active = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=1, default='F', 
    choices=GAME_STATUS_CHOICES)
    objects =  GameQuerySet.as_manager()
    def __str__(self):
        return "{0} vs {1}".format(
            self.first_player, self.second_player)

class Move(models.Model):
    x = models.IntegerField() # X and Y co-ordinates
    y = models.IntegerField()
    comment = models.CharField(max_length=300, blank= True)
    by_first_player = models.BooleanField()

admin.py

from django.contrib import admin
from .models import  Game, Move

admin.site.register(Move)
@admin.register(Game)
class GameAdmin(admin.ModelAdmin):
    list_display = ('id','first_player','second_player','status')
    list_editable = ('status',)

我是Django的新手。我已经在这个问题上停留了一段时间了。找不到答案。

我的settings.py似乎没问题,

INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'gameplay',
     'player',
]

1 个答案:

答案 0 :(得分:0)

在您的设置文件上,确保您的管理应用位于第一位

DJANGO_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'rest_framework.authtoken',
    'django_filters',

)

在admin中-在admin类代码之后注册到admin(我知道admin装饰器应该可以工作...。)

from django.contrib import admin
from .models import  Game, Move

class GameAdmin(admin.ModelAdmin):
    list_display = ('id','first_player','second_player','status')
    list_editable = ('status',)

class MoveAdmin(admin.ModelAdmin):
    list_display = MoveAdmin._meta.get_all_field_names()


admin.site.register(Game, GameAdmin)
admin.site.register(Move, Moveadmin)