Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 操作错误:仅在一些多个字段上没有这样的表_Python_Django - Fatal编程技术网

Python 操作错误:仅在一些多个字段上没有这样的表

Python 操作错误:仅在一些多个字段上没有这样的表,python,django,Python,Django,我正在创建一个包含产品和用户模型的网站,我想创建多个多个字段来创建用户模型(购买、销售的产品等)。 当我在用户模型上添加第一个cart ManyToManyField并在shell中尝试此操作时: User.objects.get(username="root").cart.all() 它工作得非常好,输出了用户购物车所有对象的查询集 但随后我在用户模型中添加了其他3个ManyToManyFields: items_purchased = models.ManyToManyField("Pro

我正在创建一个包含产品和用户模型的网站,我想创建多个多个字段来创建用户模型(购买、销售的产品等)。 当我在用户模型上添加第一个cart ManyToManyField并在shell中尝试此操作时:

User.objects.get(username="root").cart.all()
它工作得非常好,输出了用户购物车所有对象的查询集

但随后我在用户模型中添加了其他3个ManyToManyFields:

items_purchased = models.ManyToManyField("Product", related_name="items_purchased")
items_sold = models.ManyToManyField("Product", related_name="items_sold")
items_listed = models.ManyToManyField("Product", related_name="items_listed")
但是,一旦我检查了最新字段:

User.objects.get(username="root").items_purchased.all()
我有一个错误:

OperationalError: no such table: Home_user_items_purchased

我尝试的是:

  • 我进行了迁移,并已将它们同步到数据库
  • 我删除了所有 除初始化和0001之外的迁移文件
  • 我试图迁移 在应用程序中分别迁移文件

有没有什么方法可以在不清除整个数据库的情况下解决这个问题?这是Django的问题还是我做错了什么?谢谢

创建和运行迁移应该已经创建了必要的表。删除迁移并从新数据库开始是最简单的方法。我们不知道当前的数据库模式或迁移内容。即使有了这些信息,将数据库模式与迁移同步也可能很棘手。
User
对象与您购买的
项目的关系如何?它与用户(model.model)字段中的
产品
否?@itzmeontv items_purchased相关,它仅与产品(model.model)相关。相关名称是否与产品字段有关?@Alasdair我已删除迁移,但它们似乎没有改变任何东西,清除数据库是最后一个选项吗?删除已运行的迁移而不使用新数据库是一个坏主意。现在数据库和迁移不同步。我们没有足够的信息告诉您如何手动修复数据库,因此重新开始可能是您最好的选择。