Получение списка вариантов для поля модели django во внешнем интерфейсе vue.js - PullRequest
0 голосов
/ 02 апреля 2019

Я использую django restframework на сервере для создания API, к которому я получаю доступ из внешнего интерфейса с помощью vue.js. У меня есть модель 'Post', в которой хранится текст, а также есть поле 'privacy_settings'. Я определил поле настройки конфиденциальности следующим образом:

Каков наилучший способ получения параметров / вариантов в веб-интерфейсе при создании нового сообщения?

ONLYME = 'ME'
FRIENDS = 'FR'
PUBLIC = 'PU'
POST_PRIVACY_CHOICES = (
    (ONLYME, 'Onlyme'),
    (FRIENDS, 'Friends'),
    (PUBLIC, 'Public'),
)
privacy_setting = models.CharField(
max_length = 2,
choices = POST_PRIVACY_CHOICES,
default = ONLYME
)

1 Ответ

0 голосов
/ 05 апреля 2019

Рассматривали ли вы способ разделения всех словарей выбора, которые вы собираетесь использовать в своем приложении, внутри другого файла, такого как choices.py?

В любом случае, создание определенного вида, подобного этому, с открытым действием GET ожидание хорошего query_parameter плюс список доступных вариантов options здесь будет лучшим выбором.

    ONLYME = 'ME'
    FRIENDS = 'FR'
    PUBLIC = 'PU'
    POST_PRIVACY_CHOICES = (
        (ONLYME, 'Onlyme'),
        (FRIENDS, 'Friends'),
        (PUBLIC, 'Public'),
    )

    class ChoiceView(GenericAPIView):

        available_dicts = {
            "POST_PRIVACY_CHOICES": POST_PRIVACY_CHOICES,
        }

        def get(self, request):
            option = request.GET.get("option", None)
            if option is not None and option in self.available_dicts:
                result_list = []
                chosen_dict = available_dicts[option]
                for i in chosen_dict:
                    key, value = i
                    tmp = {"key": key, "value": value}
                    result_list.append(tmp)
                return Response(result_list, status=status.HTTP_200_OK)
            else:
                return Response({"Error": "Empty or invalid option given"}, status=status.HTTP_400_BAD_REQUEST)

Каждый раз, когда вы хотите получить список вариантов, это будет проще и быстрее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...