149 | | Finally, note that choices can be any iterable object -- not necessarily a list |
150 | | or tuple. This lets you construct choices dynamically. But if you find yourself |
151 | | hacking :attr:`~Field.choices` to be dynamic, you're probably better off using a |
152 | | proper database table with a :class:`ForeignKey`. :attr:`~Field.choices` is |
153 | | meant for static data that doesn't change much, if ever. |
| 149 | Finally, note that choices can be any non-empty iterable object -- not |
| 150 | necessarily a list or tuple. This lets you construct choices dynamically. But if |
| 151 | you find yourself hacking :attr:`~Field.choices` to be dynamic, you're probably |
| 152 | better off using a proper database table with a :class:`ForeignKey`. |
| 153 | :attr:`~Field.choices` is meant for static data that doesn't change much, if |
| 154 | ever. |