1 votes

Comment déterminer l'entier maximum que le modèle peut gérer ?

"Quel est le plus grand nombre entier du champ du modèle que cette instance d'application peut gérer ?"

Nous avons sys.maxint, mais je cherche l'instance base de données+modèle. Nous avons le IntegerField, le SmallIntegerField, le PositiveSmallIntegerField, et quelques autres à côté. Ils peuvent tous varier entre eux et avec chaque type de base de données.

J'ai trouvé l'exemple de champ personnalisé "IntegerRangeField" ici sur stackoverflow. Je vais peut-être devoir l'utiliser, et deviner le plus petit dénominateur commun ? Ou repenser la conception, je suppose.

Existe-t-il un moyen simple de déterminer le plus grand nombre entier qu'un IntegerField, ou ses variantes, peut prendre en charge ?

1voto

Leonid Shvechikov Points 1524

Cela dépend du backend de votre base de données.

Utilisez ./manage.py sql your_app_name pour vérifier les types générés pour vos colonnes DB, et consultez la documentation de votre base de données pour connaître les plages de types.

Pour MySQL : http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html

Pour PostgreSQL : http://www.postgresql.org/docs/8.1/static/datatype.html#DATATYPE-TABLE

1voto

John Mee Points 12004

Ce n'est pas facile à faire. Il suffit de définir une constante et de l'utiliser.

MAX_SMALL_INT = 32767

position = models.PositiveSmallIntegerField(default=MAX_SMALL_INT)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X