title: Why there isn't a "ListField" in Django?
body: <p>I have a model that has a <code>Charfield</code> (let's name it <strong>advantages</strong>) with a <code>choices</code> attribute. After a while, I've decided that this field should be "upgraded" to some kind of <code>ListField</code>, since more than one choice can be selected.</p>
  
  <p>From what I have searched, I have two options:</p>
  
  <p>1 - Create a new model, and use a ManyToManyField in the first model referencing this new model. This way, the "multiple select" default field used in admin will be rendered. Life is good.</p>
  
  <p>2- Create a custom field that saves my field as a string with some kind of separator.</p>
  
  <p>These two approaches are summarized in <a href="https://stackoverflow.com/questions/1110153/what-is-the-most-efficent-way-to-store-a-list-in-the-django-models">What is the most efficent way to store a list in the Django models?</a> and the 2nd approach in more examples: <a href="https://stackoverflow.com/questions/5216162/how-to-create-list-field-in-django">How to create list field in django</a>, <a href="http://cramer.io/2008/08/08/custom-fields-in-django/" rel="nofollow noreferrer">http://cramer.io/2008/08/08/custom-fields-in-django/</a>, <a href="https://djangosnippets.org/snippets/1200/" rel="nofollow noreferrer">https://djangosnippets.org/snippets/1200/</a>, <a href="https://djangosnippets.org/snippets/1491/" rel="nofollow noreferrer">https://djangosnippets.org/snippets/1491/</a></p>
  
  <p>Fact is: I don't want to create another model just to have the <code>ManyToManyField</code>. This is a controlled list of choices that I have (and don't want people adding new items) and think that creating a table for this is overkill (although I can create a fixture to this table and not register the model in <code>admin.py</code>, so people wouldn't be adding new items. But I don't know how would migrations work when changing these values in fixtures, when in the past I would just chance the <strong>choices</strong> tuple in my model definition).</p>
  
  <p>...and creating a new custom field, I don't know. This seems like problems in the long run since I don't know the implications, problems when upgrading Django, etc.</p>
  
  <p>Why there isn't a built in <code>ListField</code>? Which problems do you see in the long run for the two approaches I'm thinking of? I'm planning to do the first but I'm a little lost about migrations.</p>