Как решить ошибку, когда фиктивные данные сохраняются в базе данных Django с id как none и всеми значениями как null

Я сделал форму в Django, которая принимает некоторые данные и при нажатии кнопки сохранения сохраняет их в базу данных. Она сохраняет данные, которые я даю, но я заметил, что каждый раз, когда я обновляю страницу, содержащую форму, она автоматически сохраняет объект с Id как none и всеми значениями, установленными в null. Я хотел узнать, как написать функцию, которая говорит, что форма отправляется в базу данных только при нажатии кнопки save submit, а не при перезагрузке страницы и создании фиктивного объекта в базе данных.

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

Вы должны добавить csrf_token внутри формы!

Как в примере ниже ...

вы пишете в файле html

<form method="post">
{% csrf_token %}
<input name="plan" id="id_plan" value="1">
<button>buy</button>
</form>

вы пишете в models.py

class Account(models.Model):
    user = models.OneToOneField(djangoUser, on_delete=models.CASCADE, verbose_name=_('User'))

вы пишете в файле views.py

class testviews(TemplateView):
model: Account
    def forms_valid(self, form):
            user = Account.objects.filter(user=self.request.user)
            user.save()
Вернуться на верх