我试图找出如何插入,这是“产品编号”到我的“清单”数据库点击添加按钮后立即默认项。我只设法做的是插入我在文本框中输入的字符串/字符。不过,当我点击“添加”按钮,而无需在文本框中输入任何东西,我得到这个错误:
ValueError at /
The view home.views.index didn't return an HttpResponse object. It returned None instead.
这里是我的代码至今:
models.朋友
from django.db import models
from django.utils import timezone
class List(models.Model):
item = models.CharField(max_length=200)
date = models.DateTimeField(default = timezone.now)
def __str__(self):
return self.item
views.朋友
from django.shortcuts import render
from .models import List
from .forms import ListForm
from django.contrib import messages
def index(request):
context = {
'items': List.objects.all()
}
if request.method == 'POST':
form = ListForm(request.POST or None)
if form.is_valid():
form.save()
messages.success(request, ('Item has been added to the list.'))
return render(request, 'home/index.html', context)
else:
return render(request, 'home/index.html', context)
forms.朋友
from django import forms
from .models import List
class ListForm(forms.ModelForm):
class Meta:
model = List
fields = [
'item',
'date'
]
的index.html
<h1>To do list</h1>
{% if messages %}
{% for message in messages %}
<p> {{ message }} </p>
{% endfor %}
{% endif %}
<ul>
{% if items %}
{% for item in items %}
<li>{{ item.item }}</li>
<li>{{ item.date }}</li>
<br>
{% endfor %}
{% endif %}
</ul>
<form method="POST">{% csrf_token %}
<input type="text" name="item">
<input type="submit" value="Add">
</form>
删除else语句和取消缩进回报。你总是想返回呈现模板,当您在成功后重定向时除外。