Лучший способ отправки множества вариантов через Django Rest Framework
Я использую Django Rest Framework в сочетании с Vuejs для создания калькулятора стоимости рецепта. У меня есть множество вариантов единиц измерения (например, граммы, килограммы, литры и т.д.). Как лучше всего передать эти данные на фронтенд? Я создал для него конечную точку /ingredients/get-all-unit-choices/
, которая возвращает только объект со всеми вариантами единиц измерения. Является ли это хорошим подходом или есть более чистый способ объявить выбор и отправить его на фронтенд? И вообще, хороший ли это подход - создавать много конечных точек, которые делают и возвращают определенные вещи?
unitchoices.py
WEIGHT_CHOICES = ["pound", "kilogram", "ounces", "grams", "tonnes"]
VOLUME_CHOICES = [
"millileter",
"litre",
"gallon",
"teaspoon",
"tablespoon",
"fluid-ounce",
"quart",
"pint",
"cup",
]
QUANTITY_CHOICES = ["each", "dozen", "hundreds", "thousands"]
TIME_CHOICES = ["hours", "minutes", "seconds"]
LENGTH_CHOICES = ["millimeter", "meter", "centimeter", "inch", "foot", "yard"]
grouped_unit_choices = {
"Weight": WEIGHT_CHOICES,
"Volume": VOLUME_CHOICES,
"Quantity": QUANTITY_CHOICES,
"Time": TIME_CHOICES,
"Length": LENGTH_CHOICES,
}
View
Это представление, которое вызывается конечной точкой ingredient/get-all-unit-choices/
. Мне также пришлось создать словарь grouped_unit_choices
, чтобы я мог отображать <optgroup>
в html, чтобы придать им некоторый порядок
@api_view(["GET"])
def get_all_unit_choices(request):
"""helper view for returning all valid unit choices"""
from .unitchoices import grouped_unit_choices
return Response(grouped_unit_choices, status=status.HTTP_200_OK)