-2

How can I declare multiple (about 50) variables that count from slider1 to slider50 ? Is there an efficient way, like looping with for?

slider1 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider2 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider3 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider4 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider5 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider6 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider7 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider8 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider9 = models.IntegerField(widget=widgets.Slider, default=50, label="")
slider10 = models.IntegerField(widget=widgets.Slider, default=50, label="")
alexrogo
  • 522
  • 3
  • 17
  • 1
    The short answer is: Don't declare individual variables dynamically, create an object like a dictionary with key-value pairs instead – G. Anderson Mar 15 '19 at 14:56
  • `sliders = [models.IntegerField(widget=widgets.Slider, default=50, label="") for _ in range(50)]` – deceze Mar 15 '19 at 14:57

1 Answers1

-1

I would suggest using a Dictionary for this task:

d = {}

for x in range(1,10):
        d["slider{0}".format(x)]= models.IntegerField(widget=widgets.Slider, default=50, label="")
Pitto
  • 8,229
  • 3
  • 42
  • 51
  • 1
    If the names have no meaning and are just the same name with a number at the end, a `list` would be much more appropriate. – deceze Mar 15 '19 at 14:58
  • If the names have no meaning, yes. If they have meaning... No :) It is a specific requirement so I'd assume that they do have a meaning. – Pitto Mar 19 '19 at 07:48