Джанго: Как реализовать системные флаги - PullRequest
1 голос
/ 05 октября 2011

Я занимаюсь разработкой приложения в Django, и мне любопытно, как я могу добавить такую ​​модель, чтобы в ней присутствовал только 1 ряд (т. Е. Singleton).

В качестве примера я хотел бы сохранить набор логических флагов приложения, которое я запускаю, относительно того, включено ли оно или нет (поэтому я могу вручную включить или выключить его, возможно, даже для каждого модуля).

Я не вижу ни одной части документации, объясняющей хороший способ настройки.

Есть предложения?

Ответы [ 3 ]

1 голос
/ 06 октября 2011

Есть несколько приложений, которые уже занимаются этим, проверьте http://djangopackages.com/grids/g/live-setting/

1 голос
/ 05 октября 2011

Не уверен из вашего объяснения, в каком контексте вам это требуется, но у меня есть модель, которая содержит несколько пар ключ / значение, используемых в проверках валидатора и других вещах.Все ключи необходимы для каждой реализации проекта, но значения будут различаться в разных проектах.Значения должны поддерживаться администратором.Значения обычно не нужно сильно менять после установки.Учитывая это, я решил поместить их в модель.Это немного странно, но достаточно просто.

  1. Вы должны иметь возможность ограничить доступ для записи модели к одной строке для вашего приложения или ваших пользователей через ваш код.

  2. только когда-либо ссылается на первую строку в QuerySet

    row = MyVariables.objects.all()[0]
    

Проверьте, есть ли сначала строки.если вы думаете, что может быть случайно более одной записи, убедитесь, что она упорядочена (но этого никогда не произойдет, если вы сделали (1) правильно.

0 голосов
/ 06 октября 2011

Я также немного запутался в вашей цели, но я бы порекомендовал взглянуть на раздел Экземпляр модели документации. Вероятно, вам стоит взглянуть на настройку проверки или очистки модели.

Если ваша цель состоит в том, чтобы пометить в таблице только одну строку для вашей модели: во время проверки вы можете выполнить запрос, чтобы проверить, помечена ли любая другая строка, и обновить их, чтобы они не были помечены. (или удалите их).

Этот вопрос Может быть полезным уникальное значение BooleanField в Django .

...