Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 选择后出现的菜单_Python_Django - Fatal编程技术网

Python 选择后出现的菜单

Python 选择后出现的菜单,python,django,Python,Django,我是Django的新手,我不确定我是否朝着正确的方向发展 我想做的是,当用户在管理菜单中创建一个角色时,如果用户选择了派系联盟,则显示联盟种族,如果没有,则显示部落种族 型号.py Factions = ( ('Choose', 'Choose...'), ('Alliance','Alliance'), ('Horde', 'Horde'), ) Alliance_Races = ( ('Human','Human'), ('Dwarf', 'Dwa

我是Django的新手,我不确定我是否朝着正确的方向发展

我想做的是,当用户在管理菜单中创建一个角色时,如果用户选择了派系联盟,则显示联盟种族,如果没有,则显示部落种族

型号.py

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,我希望有一个页面,根据我选择的是联盟还是部落,来获得适当的种族。这不可行吗?