Заменить последнее вхождение слова в строку - C #

Игнасио прав. Модельные сигналы Django предназначены для уведомления других системных компонентов о событиях, связанных с экземплярами, и их уважаемых данных, поэтому, я думаю, это правда, что вы не можете, скажем, получить доступ к данным запроса из сигнала модели post_save, если только эти данные запроса не были сохранены или связанный с экземпляром.

Я предполагаю, что есть много способов справиться с этим, начиная от худшего до лучшего, но я бы сказал, что это пример prime для создания класса- основанные / основанные на функции общие представления, которые автоматически будут обрабатывать это для вас.

Пусть ваши представления, которые наследуют от CreateView, UpdateView или DeleteView, дополнительно наследуют от вашего класса AuditMixin, если они обрабатывают глаголов, которые работают с моделями, которые должны быть проверены. Затем AuditMixin может подключаться к представлениям, которые успешно создают \ обновлять \ удалять объекты и создавать запись в базе данных.

Делает совершенный смысл, очень чист, легко подключается и рождает счастливых пони. Оборотная сторона? Вы либо должны быть в выпуске выпущенной версии Django 1.3, либо вам придется потратить некоторое время, отвлекая на основе общих функций на основе функций и предоставляя новые для каждой операции аудита.

73
задан Peter Mortensen 16 December 2018 в 11:10
поделиться

1 ответ

Решение может быть реализовано еще более простое с одной строкой:

 static string ReplaceLastOccurrence(string str, string toReplace, string replacement)
    {
        return Regex.Replace(str, $@"^(.*){toReplace}(.*?)$", $"$1{replacement}$2");
    }

Настоящим мы используем в своих интересах жадность regex оператора звездочки. Функция используется как это:

var s = "F:/feb11/MFrame/Templates/feb11";
var tnaName = "feb11";
var r = ReplaceLastOccurrence(s,tnaName, string.Empty);
0
ответ дан 24 November 2019 в 11:32
поделиться
Другие вопросы по тегам:

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