簡體   English   中英

ModelForm不會創建模型實例

[英]ModelForm won't create instance of model

我正在嘗試在Django站點中創建一個前端表單,該表單將允許用戶向SQL數據庫添加條目。

但是,當我使用表單時,數據庫中什么也沒有發生。 我究竟做錯了什么?

我認為正確的方法是使用ModelForm技術。

我的模型如下所示:

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

    def __str__(self):
        return self.name

所以我在我的forms.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" />

你必須調用模型形式的save()檢查它的有效方法后:

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})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM