Лучший способ отправки множества вариантов через 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)
Вернуться на верх