簡體   English   中英

使用Django表單時遇到麻煩“ OperationalError:沒有這樣的表”錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM