选择一个选项,不允许再次以Django形式选择它

时间:2018-09-26 15:32:34

标签: django html5

我正在使用Django选项,我想做的是,如果您选择一个选项,django不允许您再次选择该选项,所以在我的表格中,我只想选择一种乐器每次,我真的不知道该怎么做。

随时问您想要的任何事情,我知道也许我没有正确解释我的问题。

这是我的Django模型:

class Cancion(models.Model):

nota_35='35'
nota_36='36'
nota_37='37'
nota_38='38'
nota_39='39'
nota_40='40'
nota_41='41'
nota_42='42'
nota_43='43'
nota_44='44'
nota_45='45'
nota_46='46'
nota_47='47'
nota_48='48'
nota_49='49'
nota_50='50'
nota_51='51'
nota_52='52'
nota_53='53'
nota_54='54'
nota_55='55'
nota_56='56'
nota_57='57'
nota_58='58'
nota_59='59'
nota_60='60'
nota_61='61'
nota_62='62'
nota_63='63'
nota_64='64'
nota_65='65'
nota_66='66'
nota_67='67'
nota_68='68'
nota_69='69'
nota_70='70'
nota_71='71'
nota_72='72'
nota_73='73'
nota_74='74'
nota_75='75'
nota_76='76'
nota_77='77'
nota_78='78'
nota_79='79'
nota_80='80'
nota_81='81'

notas=((nota_35,'Acoustic Bass Drum'),(nota_36,'Bass Drum 1'),(nota_37,'Side Stick'),(nota_38,'Acoustic Snare'),(nota_39,'Hand Clap'),
(nota_40,'Electric Snare'),(nota_41,'Low Floor Tom'),(nota_42,'Closed Hi Hat'),(nota_43,'High Floor Tom'),(nota_44,'Pedal Hi-Hat'),
(nota_45,'Low Tom'),(nota_46,'Open Hi-Hat'),(nota_47,'Low-Mid Tom'),(nota_48,'Hi-Mid Tom'),(nota_49,'Crash Cymbal 1'),(nota_50,'High Tom'),
(nota_51,'Ride Cymbal 1'),(nota_52,'Chinese Cymbal'),(nota_53,'Ride Bell'),(nota_54,'Tambourine'),(nota_55,'Splash Cymbal'),
(nota_56,'Cowbell'),(nota_57,'Crash Cymbal 2'),(nota_58,'Vibraslap'),(nota_59,'Ride Cymbal 2'),(nota_60,'Hi Bongo'),(nota_61,'Low Bongo'),
(nota_62,'Mute Hi Conga'),(nota_63,'Open Hi Conga'),(nota_64,'Low Conga'),(nota_65,'High Timbale'),(nota_66,'Low Timbale'),(nota_67,'High Agogo'),
(nota_68,'Low Agogo'),(nota_69,'Cabasa'),(nota_70,'Maracas'),(nota_71,'Short Whistle'),(nota_72,'Long Whistle'),(nota_73,'Short Guiro'),
(nota_74,'Long Guiro'),(nota_75,'Claves'),(nota_76,'Hi Wood Block'),(nota_77,'Low Wood Block'),(nota_78,'Mute Cuica'),(nota_79,'Open Cuica'),
(nota_80,'Mute Triangle'),(nota_81,'Open Triangle'))

nota_pad_verde=models.CharField(max_length=2, choices=notas, default=notas[0][0])
nota_pad_gris=models.CharField(max_length=2, choices=notas, default=notas[0][0])
nota_pad_azul=models.CharField(max_length=2, choices=notas, default=notas[0][0])
nota_pad_amarillo=models.CharField(max_length=2, choices=notas, default=notas[0][0])
nota_pad_rojo=models.CharField(max_length=2, choices=notas, default=notas[0][0])

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则希望用户从选择集中选择具有与之相关联的Nota的工具。在您的模型中,您正在硬编码。相反,您可以选择外键,

class Notes(models.Model):
      instrument = models.CharField(max_length = * as per you need *)
      nota = models.CharField(max_length = * as per you need *)

class Choice(models.Model):
      choice = models.ForeignKey(Notes, on_delete=models.CASCADE)

现在,您可以添加或删除nota,并且在Choice模型中可以选择所需的任何nota。