Должен ли я закрыть файл во время записи / чтения одновременно?

Вот более динамическое расширение ответа 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

Таким образом вы получите полный контроль над полями.

3
задан Sailor Moon 19 February 2019 в 11:04
поделиться

1 ответ

Вы не можете писать в закрытый файл, поэтому, если вы закрываете его после каждой операции записи, вам также придется (повторно) открывать его перед каждой записью.

Это было бы совершенно неэффективно. Поэтому вместо этого оставьте его открытым и закройте его только после того, как ваше приложение собирается завершить работу (это необходимо, потому что File.Write() не гарантирует, что при возврате данные будут записаны на диск). Поскольку вы пишете файл из обработчиков HTTP, вы должны реализовать корректное завершение работы сервера и после этого закрыть файл. Подробнее см. Server.Shutdown() .

Кроме того, если целью записи вашего общего файла является создание какого-либо регистратора, вы можете воспользоваться пакетом log , чтобы вам не пришлось использовать мьютекс. Подробнее см. net / http set custom logger .

0
ответ дан icza 19 February 2019 в 11:04
поделиться
Другие вопросы по тегам:

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