我在使用 django 时遇到问题并不断出现错误,即 "local variable 'form' referenced before assignment"



我遇到此错误local variable 'form' referenced before assignment。我不确定代码出了什么问题。form不加载,如果form被分配给不同的变量并使用,则加载页面,但表单不加载

我的模型.py:

from django.db.models.aggregates import Max
from django.db.models.base import Model
from django.db.models.fields import CharField
# Create your models here.
class Work(models.Model):
name = models.CharField(max_length=100)
image = models.ImageField(upload_to='workimages/')
summary =models.CharField(max_length=100)

def __str__(self):
return self.name
class Contact(models.Model):
name = models.CharField(max_length=200, null=True)
email = models.EmailField(max_length=50, null=True)
message = models.CharField(max_length=1000, null= True)
def __str__(self):
return self.name

view.py:

from .models import *
from .forms import *
# Create your views here.
def home (request):
work = Work.objects.all()
if request.method ==  "POST":
form = Contactform(request.POST or None)
if form.is_valid():
form.save()

context ={ 'work':work,'form':form}
return render(request, 'mysite/index.html',context)

index.html:

<form method="POST">
{% csrf_token %}
<div class="row margin-bottom-small center-xs">
<div class="col-md padding-small">
{{ form }}
</div>
<div class="col-md padding-small">
<!-- <textarea placeholder="Your Message" name="" rows="8"
class="margin-bottom-small"></textarea> -->
<input type="submit" value="Submit">
</div>
</div>
</form>

表单.py

from django import forms
from django.db.models import fields
from django.forms.forms import Form
from django.forms.models import ModelForm
from django.db import models
from .models import *
class Contactform(ModelForm):
class Meta:
models = Contact
fields = "__all__"

Putelse条件。

from .models import *
from .forms import *
def home(request):
work = Work.objects.all()

if request.method ==  "POST":
form = Contactform(request.POST)
if form.is_valid():
form.save()
else:            
form = Contactform()

context ={ 'work':work,'form':form}
return render(request, 'mysite/index.html',context)

或没有其他条件:

from .models import *
from .forms import *
def home(request):
work = Work.objects.all()

form = Contactform(request.POST or None)
if request.method ==  "POST":
if form.is_valid():
form.save()
context ={'work':work,'form':form}
return render(request, 'mysite/index.html',context)

相关内容

最新更新