Я понял, что, вероятно, лучше всего использовать change_view и что это срабатывает до того, как содержимое извлекается из модели, поэтому я использую object_id, запрашиваю запись, делаю мой код, а затем сохраняю детали
def change_view(self, request, object_id, form_url='', extra_context=None):
#Get the record
obj = ShopApiDefinition.objects.get(id=object_id)
#get a value as I use that in my code
self.password = obj.password
#do some code
shopify_shop = "a value from my code"
obj.about_the_shop = shopify_shop # change field
obj.save() # this will update only
return super(ShopApiDefinitionAdmin, self).change_view(
request, object_id, form_url, extra_context=extra_context,
)
Это, кажется, работает. Он сохранил значение в модели, и когда форма загружается, она заполняется как существующими данными, так и новыми данными из моего кода
Благодарю
Грант
Я думаю, вам нужно следующее:
str.replace(/^(.*)<br>(.*?)$/, '$1$2')
Это жадно сопоставляет все, от начала до
, затем
, потом неуклюже доводит все до конца.
Вы можете использовать тот факт, что кванторы жадные:
str.replace(/(.*)<br>/, "$1");
Но недостатком является то, что это приведет к обратному отслеживанию.
Другим решением было бы разделить строку, поместив последние два элементы вместе, а затем соединить части:
var parts = str.split("<br>");
if (parts.length > 1) {
parts[parts.length - 2] += parts.pop();
}
str = parts.join("<br>");