Я использую Django на бэкэнд и jQuery на передней панели. Я хотел бы принять как фракции, так и целые числа (например, «1/2», «1 1/4» или «2», для количества ингредиентов в рецепте.) Я использую FloatField для хранения этих значений. Каков наилучший способ преобразования этих дробей/целых чисел в поплавки?Разбор фракции в форме Django
2
A
ответ
1
>>> import fractions
>>> fractions.Fraction("1")
Fraction(1, 1)
>>> fractions.Fraction("1/2")
Fraction(1, 2)
К сожалению, fraction
конструктор не обрабатывает смешанные фракции («1 1/2»), так что вам придется написать что-то, чтобы разобрать те себя. Вы можете сохранить их в базе данных либо с помощью настраиваемого поля, либо путем их литья до float
.
0
Это работает для меня. Все еще можно немного почистить.
import fractions
def parse_multi_part_fraction(f):
if '/' not in f:
return float(f)
parts = f.split(' ')
total = 0.0
for p in parts:
if '/' in p:
frac = fractions.Fraction(p)
total += frac.numerator * (1.0/frac.denominator)
else:
total += float(p)
return total
Смежные вопросы
- 1. Разбор фракции до нуля
- 2. Калькулятор Фракции на Земле: Разбор
- 3. Способ получить математический ответ в форме фракции
- 4. SymPy интеграции() не производит вывод в натуральной форме общей фракции
- 5. Разбор JSON массив в Django
- 6. Длина фракции
- 7. Непрерывные фракции
- 8. Разделительные фракции
- 9. Фракции в NumericUpDown/DomainUpDown
- 10. Подвижные фракции в с
- 11. Формат фракции в rdlc
- 12. Фракции в Python
- 13. Добавление фракции в Java
- 14. Преобразование фракции в проценты
- 15. Факторизующие фракции в sympy
- 16. Преобразование фракции в десятичный
- 17. номера фракции класса python
- 18. Использование GET в форме Django
- 19. Django NoReverseMatch в форме перенаправлять
- 20. Django: Несколько форм в форме
- 21. Ленивые выбор в Django форме
- 22. выбор Сужение в Django форме
- 23. 400 Ошибка в форме Django
- 24. группировка полей в форме django
- 25. Проверка поля в форме Django
- 26. Создать дату в форме django
- 27. Переопределение max_value в форме django
- 28. Сохранение пользователя Django в форме
- 29. Величина комплексных чисел во фракции
- 30. Разбор forloop.counter в ярлыке формы в Django
Да, я хотел знать, как хранить его в базе данных. Я искал переписывание методов clean/to_python, но создание настраиваемого поля кажется лучшим вариантом. – tocf
Да, я думаю, что имеет смысл хранить их как фракции. К сожалению, я не знаю Django, поэтому не могу помочь с настраиваемой областью; если вы перефразируете вопрос, у вас может быть больше удачи. – katrielalex
Это хорошо, документация/код Django очень полезна, и я получил ее работу. Спасибо! – tocf