Редактирование списка в другом файле
Я пытаюсь редактировать список в другом файле в python django. У меня есть файл models.py и файл details.py,
details.py:
DATA = [
{'height': '184', 'width': '49'}
{'height': '161', 'width': '31'}
{'height': '197', 'width': '25'}
{'height': '123', 'width': '56'}
{'height': '152', 'width': '24'}
{'height': '177', 'width': '27'}
]
def edit_list(h,w):
for info in DATA:
if info['height'] == h:
info['width'] = w
return True
models.py:
from abc.details import edit_list
height = '161'
new_width = '52'
update_data = edit_list(height, new_width) #this doesn't work, when I check the file nothing changes in the list :/
Какой наилучший подход для того, чтобы это стало возможным?
(Я не хочу импортировать этот список в DB и просто обновлять там ширину, я хочу, чтобы ширина обновлялась внутри самого файла, удаление файла details.py и создание нового с помощью python всякий раз, когда происходит редактирование, невозможно, потому что несколько других функций постоянно берут данные из списка)
Вам необходимо сделать отступ в выражении info['width'] = w, иначе вы не получите ожидаемого результата. Что еще более важно, вам нужно "снять отступ" с оператора возврата. На данный момент вы возвращаетесь из функции после выполнения первой строки в операторе for. Остальные строки не выполняются.
def edit_list(h,w):
for info in DATA:
if info['height'] == h:
info['width'] = w
return True