我正在尝试为我的D&D版本中的一个字符写一个模型,我希望用户只能从字符串列表中选择,这将是字典的名称
from django.conf import settings
from django.urls import reverse
from django.db import models
import misaka
from django.contrib.auth import get_user_model
User = get_user_model()
# Create your models here.
Races={
'Dragonborn':{'attack':13,'deffence':12,'intelligence':12,'agility':12,'wisdom':13,'charisma':13},
'Dwarf':{'attack':11,'deffence':14,'intelligence':14,'agility':10,'wisdom':15,'charisma':11},
'Elf':{'attack':10,'deffence':8,'intelligence':15,'agility':13,'wisdom':15,'charisma':14},
'Gnome':{'attack':15,'deffence':15,'intelligence':10,'agility':15,'wisdom':10,'charisma':10},
'Half-Elf':{'attack':13,'deffence':10,'intelligence':13,'agility':14,'wisdom':12,'charisma':13},
'Halfling':{'attack':12,'deffence':13,'intelligence':14,'agility':13,'wisdom':12,'charisma':11},
'Orc':{'attack':15,'deffence':15,'intelligence':11,'agility':12,'wisdom':11,'charisma':11},
'Human':{'attack':12,'deffence':12,'intelligence':13,'agility':13,'wisdom':13,'charisma':12}
}
Classes={
'Barbarian':{'attack':6,'deffence':3,'intelligence':1,'agility':4,'wisdom':1,'charisma':1},
'Bard':{'attack':2,'deffence':1,'intelligence':4,'agility':4,'wisdom':4,'charisma':4},
'Cleric':{'attack':3,'deffence':2,'intelligence':4,'agility':1,'wisdom':4,'charisma':2},
'Druid':{'attack':3,'deffence':2,'intelligence':3,'agility':2,'wisdom':3,'charisma':3},
'Fighter':{'attack':6,'deffence':3,'intelligence':1,'agility':4,'wisdom':1,'charisma':1},
'Monk':{'attack':2,'deffence':2,'intelligence':3,'agility':4,'wisdom':3,'charisma':2},
'Paladin':{'attack':5,'deffence':5,'intelligence':2,'agility':1,'wisdom':2,'charisma':1},
'Ranger':{'attack':4,'deffence':1,'intelligence':3,'agility':5,'wisdom':3,'charisma':1},
'Rogue':{'attack':5,'deffence':1,'intelligence':1,'agility':7,'wisdom':1,'charisma':1},
'Sorcerer':{'attack':2,'deffence':1,'intelligence':6,'agility':1,'wisdom':5,'charisma':1}
}
class Character(models.Model):
user=models.ForeignKey(User,related_name='characters',on_delete=models.CASCADE)
name=models.CharField(max_length=200)
#Races
#class我该如何使用“模型”。为了这样的事情?
发布于 2021-02-07 15:55:14
正确的方法是创建Races和Classes模型,然后为角色模型提供这些模型的值。
class Race(models.Model):
name = ....
attack = ....
.
.
class ClassCh(model.Model):
name = ....
attack = ....
.
.
class Character(models.Model):
raceList = Race.objects.all()
classList = ClassCh.objects.all()
user=models.ForeignKey(User,related_name='characters',on_delete=models.CASCADE)
name=models.CharField(max_length=200)
race = models.ForeignKey(choices = raceList,on_delete=models.CASCADE)
classch = models.ForeignKey(choices = classList,on_delete=models.CASCADE)您也可以避免为比赛和班级创建模型,但是您需要将字典保存为字符串
race = models.CharField(choices= RACES_LIST)
class = models.CharField(choices= CLASSES_LIST)https://stackoverflow.com/questions/66083719
复制相似问题