如何在Django中使用输入表单从数据库中删除记录

2024-05-20 14:38:09 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个小的网络程序,用户可以在其中输入他/她的电子邮件并接收一些更新。尽管如此,这封电子邮件保存在数据库(sqlite3)中,我有一个用户可以取消订阅的表单,我的问题是我正在试图找到一种从取消订阅表单获取输入的方法&;如果它匹配数据库中的任何记录,它将删除它。有人有什么建议吗

This is the view i'm trying to create but doesn't work

def unsubscribe_view(request):

    form = EmailForm()

    if request.method == "POST":
        form = EmailForm(request.POST)
        value = form.cleaned_data['email']
        if form.is_valid():
            Email.objects.filter(email = value).delete()

    context = {
        'form' : form,
    }

    return render(request, 'Version/unsubscribe.html', context)

This is the html page

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

    <!-- Compiled and minified JavaScript -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>

<div style="text-align : center;">
<h1> UnSubscribe Page </h1>
<div class="container">
    <div class="row">
<form method="post" action="/">
    {% csrf_token %}
    {{form}}
    <button type="submit" class="waves-effect waves-light btn-small">Unsubscribe</button>
</form>
</div>
</div>
</div>

This is the model if its any helpful

from django.db import models

# Create your models here.

class Email(models.Model):
    email = models.EmailField()

    def __str__(self):
        return self.email

This is the form

from django import forms
from django.forms import ModelForm
from .models import Email

class EmailForm(forms.ModelForm):
    class Meta:
        model = Email
        fields = ['email']

Tags: thefromimportdivformifismodels