-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="")
2
  • 1
    The short answer is: Don't declare individual variables dynamically, create an object like a dictionary with key-value pairs instead Commented Mar 15, 2019 at 14:56
  • sliders = [models.IntegerField(widget=widgets.Slider, default=50, label="") for _ in range(50)] Commented Mar 15, 2019 at 14:57

1 Answer 1

-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="")
Sign up to request clarification or add additional context in comments.

2 Comments

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.
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.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.