Как я могу легко отметить записи, как удалено в моделях Django вместо того, чтобы на самом деле удалить их?

Слово о hover()

Вызов $( selector ).hover( handlerIn,handlerOut) является сокращением для: $( selector ).mouseenter( handlerIn ).mouseleave( handlerOut );

blockquote>

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

$(document).ready(function() {
    $('#box').hover(function() {
        $('#details').show(500);
    }, function() {
        $('#details').hide(500);
    })
})

для получения дополнительной информации о hover () https://api.jquery.com/hover/

, если вы просто хотите показать на mouseenter используйте mouseenter() https://api.jquery.com/mouseenter/

12
задан Brian Tompsett - 汤莱恩 2 July 2015 в 18:24
поделиться

3 ответа

Django предлагает из коробки именно тот механизм, который вам нужен.

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

Подробнее см. Здесь: http://docs.djangoproject.com/en/dev/topics/db/managers/#using-managers-for-related-object-access

11
ответ дан 2 December 2019 в 07:22
поделиться

Хороший вопрос, мне было интересно, как эффективно сделать это самому.

Я не уверен, если это сделает свое дело, но django-reversion , кажется, делает то, что вы хотите, хотя вы, вероятно, хотите исследовать, чтобы увидеть, как он достигает этой цели, поскольку есть некоторые неэффективные способы сделать это.

Другой Мы думаем, что на ваших моделях будет установлен страшный логический флаг, а затем будет создан собственный менеджер, который автоматически добавит фильтр, хотя это не сработает при поиске в разных моделях. Еще одно решение , предложенное здесь , состоит в том, чтобы иметь дублирующиеся модели всего, что кажется излишним, но может работать для вас. Комментарии там также обсуждают различные варианты.

Я добавлю, что по большей части я не ' Рассмотреть любое из этих решений стоит хлопот; Я обычно просто поглощаю это и фильтрую свои поиски по логическому флагу. Это позволяет избежать многих проблем, которые могут возникнуть, если вы попытаетесь стать слишком умным. Это боль и не очень СУХОЙ, конечно. Разумным решением было бы сочетание Менеджера пользовательских настроек с учетом его ограничений, если вы попытаетесь выполнить поиск связанной модели через него.

4
ответ дан 2 December 2019 в 07:22
поделиться

Я думаю, что использование логического флага 'is_active' хорошо - вам не нужно каскадировать флаг для связанных записей на уровне БД вам просто нужно продолжать ссылаться на статус родителя. Это то, что происходит с моделью User contrib.auth, помните - пометка пользователя как не is_active не побуждает django просматривать связанные модели и магически пытаться деактивировать записи, а вы просто продолжаете проверять атрибут is_active пользователя, соответствующий связанный элемент.

Например, если у каждого пользователя много закладок и вы не хотите, чтобы закладки неактивного пользователя были видны, просто убедитесь, что bookmark.user.is_active имеет значение true. Маловероятно, чтобы на самой закладке был флаг is_active.

3
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: