我正在尝试制作井字游戏。我的Django网站管理页面显示为空白,我无法解决。
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',
]
答案 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)