【问题标题】:Table doesn't exist in django表在 django 中不存在
【发布时间】:2019-09-15 21:37:36
【问题描述】:

我正在尝试使用此模型将数据从表单发送到数据库,但我不断收到此错误:

("Table 'trades.main_SomeModel' doesn't exist")

这是我的模型:

class SomeModel(models.Model):
     data = models.CharField(max_length=100)

     def save(self):
         super(SomeModel, self).save(using='dataset')

这是我的表格:

 class DataForm(forms.ModelForm):

        class Meta:
            model = Trade
            fields = ("data",)

        def save(self, commit=True):
            send = super(DataForm, self).save(commit=False)
            if commit:
                send.save()
            return send

我已经尝试过this,但它不起作用:实际上,当我进入第 3 步时,我收到了错误table "main_SomeModel" already exists

注意:我正在使用两个数据库。有一个默认值和一个第二个。此模型的数据应发送到第二个数据库。

我做错了什么?我应该再次迁移吗?

【问题讨论】:

  • 迁移后您是否对模型进行了任何更改(字段方面)?如果是这样,您确实需要再次迁移。
  • 问题是我在我的 DB @Alasdair 上没有看到任何表
  • 我使用了两个数据库,一个是默认的,一个是第二个。在这个模型上,数据应该保存在我的 settings.py 文件中声明的第二个数据库中
  • 立即编辑
  • 我认为这个send = super(SomeModel, self).save(commit=False) 应该是DataForm 中send = super(DataForm, self).save(commit=False) 的问题

标签: python django django-models django-forms django-views


【解决方案1】:

您需要为两个数据库运行迁移,但您已为一个数据库运行它。

python manage.py migrate --database dataset

这里dataset 是您的默认数据库以外的数据库的名称。

【讨论】:

  • 如果这确实是您的问题,请考虑使用 django 数据库路由器
猜你喜欢
  • 2015-02-19
  • 1970-01-01
  • 2015-07-03
  • 2016-06-14
  • 2016-12-14
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
相关资源
最近更新 更多