Django, UpdateView удаляет строку в таблице - PullRequest
1 голос
/ 14 марта 2020

Я полностью переделал скрипт, потому что я подумал, что дополнительный компонент удаляет строку в моей базе данных, а это не так. Мой скрипт как-то удается это сделать:

Вот факты: Модель называется «Настройки», которая реализована как 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, которая является единственной строкой в ​​этой таблице) также удаляется из базы данных. Насколько я могу судить, никакие другие вещи не мешают. У меня нет выбора, я не могу найти источник проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...