Вот более динамическое расширение ответа mgPePe:
class MyAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyAdminForm, self).__init__(*args, **kwargs)
self.fields['by_admin'].label = 'My new label'
self.fields['by_admin'].widget = forms.RadioSelect()
class Meta:
model = TagCat
class MyAdmin(admin.ModelAdmin):
fields = ['name', 'by_admin']
form = MyAdminForm
Таким образом вы получите полный контроль над полями.
Вы не можете писать в закрытый файл, поэтому, если вы закрываете его после каждой операции записи, вам также придется (повторно) открывать его перед каждой записью.
Это было бы совершенно неэффективно. Поэтому вместо этого оставьте его открытым и закройте его только после того, как ваше приложение собирается завершить работу (это необходимо, потому что File.Write()
не гарантирует, что при возврате данные будут записаны на диск). Поскольку вы пишете файл из обработчиков HTTP, вы должны реализовать корректное завершение работы сервера и после этого закрыть файл. Подробнее см. Server.Shutdown()
.
Кроме того, если целью записи вашего общего файла является создание какого-либо регистратора, вы можете воспользоваться пакетом log
, чтобы вам не пришлось использовать мьютекс. Подробнее см. net / http set custom logger .