Python 选择后出现的菜单
我是Django的新手,我不确定我是否朝着正确的方向发展 我想做的是,当用户在管理菜单中创建一个角色时,如果用户选择了派系联盟,则显示联盟种族,如果没有,则显示部落种族 型号.pyPython 选择后出现的菜单,python,django,Python,Django,我是Django的新手,我不确定我是否朝着正确的方向发展 我想做的是,当用户在管理菜单中创建一个角色时,如果用户选择了派系联盟,则显示联盟种族,如果没有,则显示部落种族 型号.py Factions = ( ('Choose', 'Choose...'), ('Alliance','Alliance'), ('Horde', 'Horde'), ) Alliance_Races = ( ('Human','Human'), ('Dwarf', 'Dwa
Factions = (
('Choose', 'Choose...'),
('Alliance','Alliance'),
('Horde', 'Horde'),
)
Alliance_Races = (
('Human','Human'),
('Dwarf', 'Dwarf'),
('Night Elf', 'Night Elf'),
('Gnome', 'Gnome'),
('Draenei', 'Draenei'),
('Worgen', 'Worgen'),
('Pandaren', 'Pandaren'),
)
Horde_Races = (
('Orc','Orc'),
('Undead', 'Undead'),
('Tauren', 'Tauren'),
('Troll', 'Troll'),
('Blood Elf', 'Blood Elf'),
('Goblin', 'Goblin'),
('Pandaren', 'Pandaren'),
)
class Character(models.Model):
character_name = models.CharField(max_length=100, default="")
faction = models.CharField(max_length=8, choices=Factions, default='none')
race = ""
def __str__(self):
return self.character_name
def race_options(self):
if self.allied_with == "Alliance":
self.race = models.CharField(max_length=8, choices=Alliance_Races, default='none')
elif self.allied_with == "Horde":
self.race = models.CharField(max_length=8, choices=Horde_Races, default='none')
我非常感谢你的帮助。提前谢谢 尝试使用模型继承:
class Character(models.Model):
character_name = models.CharField(max_length=100, default="")
def __str__(self):
return self.character_name
class Meta:
abstract = True
class AllianceCharacter(Character)
race = models.CharField(choices=Alliance_Races)
class HordeCharacter(Character)
race = models.CharField(choices=Horde_Races)
您好,我尝试了您的解决方案,但遇到了一个错误:“模型角色是抽象的,因此无法向admin注册。”这是我的admin.py文件:class CharacterAdmin(admin.ModelAdmin):list\u display=(“Character\u name”)admin.site.register(Character,CharacterAdmin)@IvanPenev您正在尝试注册一个抽象模型。您需要注册每个子类模型:
admin.site.register(AllianceCharacter,CharacterAdmin)
和admin.site.register(HordeCharacter,CharacterAdmin)
我对行“admin.site.register(Character,CharacterAdmin)”进行了注释,并添加了您建议的两行,服务器运行良好,但结果并不是我想象的那样。当我进入管理屏幕,而不是角色,我现在有AllianceCharacter和HordeCharacter,我希望有一个页面,根据我选择的是联盟还是部落,来获得适当的种族。这不可行吗?