[英]Django Error: OperationalError: no such table: polls_poll
[英]Having trouble with Django forms “OperationalError: no such table” error
我正在嘗試在Django上設置一個在頁面上顯示輸入的表單,但出現此錯誤。
django.db.utils.OperationalError: no such table: firstapp_post
這不會立即發生,但是當我嘗試在表單上使用提交功能時。
現在這就是我的模型:
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
post = models.CharField(max_length=500)
user = models.ForeignKey(User)
目前,這些是我的表格:
from django import forms
from firstapp.models import Post
class IndexForm(forms.ModelForm):
post = forms.CharField()
class Meta:
model = Post
fields = ('post',)
這是我的意見檔案:
from django.shortcuts import render, redirect
from firstapp.forms import IndexForm
from django.views.generic import TemplateView
class HomePage(TemplateView):
template_name = 'home/home.html'
def get(self, request):
form = IndexForm()
return render(request, self.template_name, {'form': form})
def post(self, request):
form = IndexForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.user = request.user
post.save()
text = form.cleaned_data['post']
form = IndexForm()
return redirect('home:home')
args = {'form': form, 'text': text}
return render(request, self.template_name, args)
這是我的base.html
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Assignment 4</title>
<link rel='stylesheet' href='{% static "css/base.css" %}'/>
</head>
<body>
<p>{{ variable }}</p>
{% block body %}{% endblock %}
<script src= '{% static "js/base.js" %}'></script>
</body>
</html>
和我的home.html:
{% extends 'base.html' %}
{% block body %}
<div class="container">
<p>Home</p>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
<p>{{ text }}</p>
</div>
{% endblock %}
有誰知道這個錯誤甚至意味着什么,或者為什么我得到它? 這讓我發瘋。 謝謝您的幫助!
如錯誤消息所述,該特定表在您的數據庫中不存在。
您可以運行以下命令:
python manage.py makemigrations appname
通過運行makemigrations,您將告訴Django您對模型進行了一些更改,並且希望將更改存儲為遷移。
現在再次運行遷移以在數據庫中創建那些模型表
python manage.py migrate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.