Я полностью переделал скрипт, потому что я подумал, что дополнительный компонент удаляет строку в моей базе данных, а это не так. Мой скрипт как-то удается это сделать:
Вот факты: Модель называется «Настройки», которая реализована как Singleton:
class Setting(SingletonModel):
page = models.IntegerField()
profile = models.ForeignKey(Profile, on_delete=models.CASCADE, blank=True, null=True, default=None)
addmonitored = models.BooleanField(default=True, verbose_name="Add shows as monitored to Sonnar")
folders = models.BooleanField(default=True, verbose_name="Subfolders for seasons")
def __str__(self):
return "Settings"
class Meta:
verbose_name_plural = "Settings"
Базовая модель выглядит следующим образом:
class SingletonModel(models.Model):
class Meta:
abstract = True
def save(self, *args, **kwargs):
self.pk = 1
super(SingletonModel, self).save(*args, **kwargs)
def delete(self, *args, **kwargs):
pass
@classmethod
def load(cls):
obj, created = cls.objects.get_or_create(pk=1)
return obj
FormView выглядит так:
class SettingsFormSetView(UpdateView):
model = Setting
exclude = ['page', 'xxxxxx']
template_name = 'settings.html'
def get_object(self):
return Setting.objects.get(pk=1)
def get_success_url(self):
return reverse('settings')
Я могу без проблем открыть форму, ввести данные, сохранить их. Я могу перезагрузить страницу, и она все еще показывает данные. Если я перезагружаю его несколько раз, форма внезапно становится пустой, и строка (pk = 1, которая является единственной строкой в этой таблице) также удаляется из базы данных. Насколько я могу судить, никакие другие вещи не мешают. У меня нет выбора, я не могу найти источник проблемы.