ModelForm不会创建mod的实例

2024-09-30 22:27:21 发布

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

我试图在Django站点中创建一个前端表单,允许用户向我的SQL数据库添加条目

但是当我使用表单时,我的数据库中不会发生任何事情。我做错了什么?

我认为正确的方法是使用ModelForm技术

我的模型如下所示:

class Actor(models.Model):
    name = models.CharField(max_length=200)
    wage = models.IntegerField(default=3100)

    def __str__(self):
        return self.name

所以我用我的表单.py写了这个:

from django import forms
from .models import Actor

class ActorForm(forms.ModelForm):
     class Meta:
        model = Actor
        fields = ['name', 'wage']
form = ActorForm()

然后我将其添加到我的views.py

def get_actor(request):
    if request.method == 'POST':
        form = ActorForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/scenes/thanks/')
    else:
        form = ActorForm()

    return render(request, 'scenes/actor.html', {'form': form})

def thanks(request):
    return render(request, 'scenes/thanks.html',)

在一个名为actors.html

<form action="/scenes/actor/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />


Tags: nameform数据库表单returnmodelsrequestdef
1条回答
网友
1楼 · 发布于 2024-09-30 22:27:21

在检查模型表单的^{}方法是否有效后,必须调用该方法:

def get_actor(request):
    if request.method == 'POST':
        form = ActorForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/scenes/thanks/')
    else:
        form = ActorForm()

    return render(request, 'scenes/actor.html', {'form': form})

相关问题 更多 >