【发布时间】:2021-07-01 04:42:30
【问题描述】:
我正在获取用户放入表单的数据并将其保存到 Django 中的数据库中。当我提交表单时,该值实际上确实保存到了数据库中。但我不断收到这个错误。不知道如何解决?
views.py
def home(request):
if request.method == "GET":
form_for_post = {'form': PostForm()}
return render(request, "capstone/home2.html", form_for_post)
else:
if request.method == "POST":
form = PostForm(request.POST)
if form.is_valid():
city = form.cleaned_data['city']
place = Location.objects.create(username=request.user, city=city,)
place.save()
else:
return render(request, "capstone/home2.html")
models.py
class User(AbstractUser):
pass
class Location(models.Model):
city = models.CharField(max_length=500)
username = models.ForeignKey('User', on_delete=models.CASCADE,
related_name='author', null=True, blank=True)
forms.py:
class PostForm(forms.Form):
city = forms.CharField(max_length=500)
html 格式:
<form method="POST">
{% csrf_token %}
<label for="city">City:</label><br>
<input type="text" id="city" name="city"><br>
<input type="submit" value="Submit">
</form>
【问题讨论】:
-
if form.is_valid():这个 if 子句,如果满足的话,会导致视图不返回任何东西。看来你不需要else?
标签: django django-models django-views django-forms