django model表单数据没有被保存到数据库



我试图将表单数据保存到DB,但它没有被保存。我也没有得到任何错误。这是我的form.py:

def create_lead(request):
form = LeadForm()
if request.method == 'POST':
form = LeadForm(request.POST)
print(form.data)
if form.is_valid():
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
age = form.cleaned_data['age']
city = form.cleaned_data['city']
country = form.cleaned_data['country']
email = form.cleaned_data['email']
status = form.cleaned_data['status']
agent = form.cleaned_data['agent']
avatar = form.cleaned_data['avatar']
lead = Lead(
first_name=first_name,
last_name=last_name,
age=age,
city=city,
country=country,
email=email,
status=status,
agent=agent,
avatar=avatar
)
lead.save()
return redirect('/all')
return render(request, 'create.html', {'form': LeadForm})

我甚至试图创建一个模型直接提到这里:HTML表单数据没有保存在数据库- django,但它没有帮助。

def create_lead(request):
form = LeadForm()
if request.method == 'POST':
form = LeadForm(request.POST)
print(form.data)
if form.is_valid():
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
age = form.cleaned_data['age']
city = form.cleaned_data['city']
country = form.cleaned_data['country']
email = form.cleaned_data['email']
status = form.cleaned_data['status']
agent = form.cleaned_data['agent']
avatar = form.cleaned_data['avatar']
Lead.objects.create(
first_name=first_name,
last_name=last_name,
age=age,
city=city,
country=country,
email=email,
status=status,
agent=agent,
avatar=avatar
)
return redirect('/all')
return render(request, 'create.html', {'form': LeadForm})

这是我的form .py:

class LeadForm(forms.ModelForm):
class Meta: 
model = Lead
fields = '__all__'

模型如下:

class Lead(models.Model):
lead_status = (
('Potential', 'Potential'),
('Prospect', 'Prospect'),
('Negotiation', 'Negotiation'),
('Converted', 'Converted'),
('Failed', 'Failed')
)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
age = models.IntegerField(default=0)
city = models.CharField(max_length=25, null=True)
country = models.CharField(max_length=30, null=True)
email = models.EmailField(max_length=50, null=True)
agent = models.ForeignKey('Agent', on_delete=models.CASCADE, null=True)
status = models.CharField(max_length=15, choices=lead_status, null=True)
avatar = models.ImageField(null=True, upload_to='media')
def __str__(self):
return self.first_name

HTML

<form method="POST" action="." enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<button type="submit">Submit</button>
</form>

您正在保存一个文件,因此您必须将request.FILES添加到您的表单中。

form = LeadForm(request.POST, request.FILES)

最新更新