3

つまり、これが状況です。新しい列(プレゼンター)をイベントテーブルに追加しています。alter tablesqlステートメントを実行しましたpython manage.py syncdb。多くのプロファイルを選択して、プレゼンターとして保存できるようにしようとしています。なぜこうなった?

Exception Type:     DatabaseError
Exception Value:    no such table: events_event_presenters

class Event(models.Model):
    title = models.CharField(max_length=200)
    presenters = models.ManyToManyField(Profile, null=True, blank=True) #new column
    sub_heading = models.CharField(max_length=200)
    description = models.TextField()
    date = models.DateTimeField()
4

2 に答える 2

5

ManyToMany フィールドを既存のテーブルに追加しましたが、これは syncdb によって検出されません。私にはジャンゴ側の欠陥のように思えますが、それはマイナーだと思います。テーブルを生成する最も簡単な方法は、実行することです

./manage.py sql events

次に、の定義を見つけてevents_event_presenters、データベースシェルに貼り付けます。

./manage.py dbshell
于 2012-07-03T21:49:15.373 に答える
0

「そのようなテーブルがない」とは、データベースに、作成した名前のテーブルが含まれていないことを意味します。

名前がデータベースとまったく同じように書かれているかどうかを確認します(大文字と小文字を区別する方がよい)。名前に問題がない場合は、テーブルの名前の前に、テーブルを作成したデータベーススキーマの名前(my_schema.my_tableなど)を設定します。

于 2012-07-03T21:10:41.667 に答える