Контекст: я использую пользовательскую форму (DeckCreateForm) с переопределенным методом сохранения для обработки сохранения данных колоды. В этом методе я установил для параметра фиксации значение False, чтобы предотвратить немедленную фиксацию базы данных.
Наблюдение: несмотря на установку параметра фиксации в значение False, при сохранении экземпляра формы через интерфейс администратора появляется что данные формы фиксируются в базе данных.
Необходимо понимание: я ищу разъяснений, почему данные формы фиксируются в базе данных, даже если для фиксации явно установлено значение False. Кроме того, я хочу понять факторы, которые могут повлиять на поведение параметра фиксации в контексте интерфейса администратора Django.
Приложенные усилия: я просмотрел документацию Django относительно сохранения форм и интерфейс администратора, но не нашел четкого объяснения такого поведения. Я также проверил свой код и не обнаружил каких-либо очевидных ошибок или неправильных конфигураций.
Запрос: мне нужны идеи или объяснения от сообщества Django о том, как интерфейс администратора Django обрабатывает формы. сохранение и факторы, которые могут повлиять на поведение параметра фиксации. Кроме того, мы будем очень признательны за любые предложения по устранению неполадок или дальнейшему изучению.
Мой код:
Пользовательская функция сохранения (forms.py):
Код: Выделить всё
def save(self, commit=False):
deck = super().save(commit=False)
if commit:
deck.save()
self.save_m2m()
cleaned_data = self.cleaned_data
word_items = cleaned_data.get('word_items')
with transaction.atomic():
try:
for rank, word_item in enumerate(word_items, start=1):
deck_entry, created = DeckWord.objects.get_or_create(
deck=deck,
word_item=word_item,
defaults={'rank':1}
)
except IntegrityError as e:
raise
return deck
Код: Выделить всё
@admin.register(Deck)
class DeckAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'description', 'language', 'is_ranked', 'created_by', 'visibility']
form = DeckCreateForm
Подробнее здесь: https://stackoverflow.com/questions/785 ... -parameter