Django: добавить список «конфигурации» для различных разделов кода для доступа - PullRequest
2 голосов
/ 16 октября 2019

Я использую эти разные фрагменты кода в разных частях своего кода. Чтобы избежать потенциальных ошибок со временем, я хотел бы реализовать один список конфигурации, к которому могут обращаться оба этих раздела. Список становится длиннее со временем с большим количеством записей. У вас есть идея о том, как этого добиться?

Здесь должны быть доступны список «конфигурации» № 1 и № 2 для выполнения операторов filter и if:

list = [TYPE_OF_PEOPLE_ATTENDING, HEARING_ABOUT_THE_EVENT, MISSING_EVENT_INFORMATION, REASON_FOR_ATTENDING]

1

entities = (
    Entity.objects.values("answer__question__focus", "name")
    .annotate(count=Count("pk"))
    .annotate(total_salience=Sum("salience"))
    .filter(
        Q(answer__question__focus=QuestionFocus.TYPE_OF_PEOPLE_ATTENDING) |
        Q(answer__question__focus=QuestionFocus.HEARING_ABOUT_THE_EVENT) |
        Q(answer__question__focus=QuestionFocus.MISSING_EVENT_INFORMATION) |
        Q(answer__question__focus=QuestionFocus.REASON_FOR_ATTENDING)
    )
)

2

if (
    answer_obj.question.focus == QuestionFocus.TYPE_OF_PEOPLE_ATTENDING
    or answer_obj.question.focus == QuestionFocus.HEARING_ABOUT_THE_EVENT
    or answer_obj.question.focus == QuestionFocus.MISSING_EVENT_INFORMATION
    or answer_obj.question.focus == QuestionFocus.REASON_FOR_ATTENDING
):
    entities = analyze_entities(answer_obj.answer)
    bulk_create_entities(entities, response, answer_obj)

1 Ответ

0 голосов
/ 16 октября 2019

Вы должны иметь возможность переписать оба оператора для непосредственного использования списка:

VALID_TYPES = [TYPE_OF_PEOPLE_ATTENDING, HEARING_ABOUT_THE_EVENT, MISSING_EVENT_INFORMATION, REASON_FOR_ATTENDING]

1

entities = (
    Entity.objects.values("answer__question__focus", "name")
    .annotate(count=Count("pk"))
    .annotate(total_salience=Sum("salience"))
    .filter(answer__question__focus__in=VALID_TYPES)

2

if (answer_obj.question.focus in VALID_TYPES):
    entities = analyze_entities(answer_obj.answer)
    bulk_create_entities(entities, response, answer_obj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...