2017-09-25 1 views
0

ページに入力を表示するフォームをDjangoに設定しようとしていますが、このエラーが発生します。Djangoに問題がある "OperationalError:no such table"エラー

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 %} 

誰もがこのエラーがさえ意味や、なぜ私はそれを取得していますどのような任意のアイデアを持っていますか?これは私をナットにしている。助けてくれてありがとう!

答えて

1

エラーメッセージに記載されているように、その特定のテーブルはデータベースに存在しません。 、あなたがあなたのモデルにいくつかの変更を加えました、あなたが変更として保存することがしたいというジャンゴを言っているmakemigrationsを実行することにより

python manage.py makemigrations appname 

次のコマンドを実行することができます移行。

今すぐあなたのデータベースでこれらのモデルのテーブルを作成するために、再度移行を実行

python manage.py migrate 

Further Reading

関連する問題