Выберите вариант и не позволяйте выбирать его снова в формах Django - PullRequest
0 голосов
/ 26 сентября 2018

Я работаю с выбором 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 голосов
/ 27 сентября 2018

Если я правильно понимаю ваш вопрос, вы хотите, чтобы пользователь выбрал из набора настроек инструмент, с которым связана нота.В вашей модели вы жестко программируете.Вместо этого вы можете выбрать внешний ключ,

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)

Теперь вы можете добавлять или удалять нотасы, а в модели выбора вы можете выбрать любую ноту, какую захотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...