首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django.db.utils.ProgrammingError:关系"bot_trade“不存在

django.db.utils.ProgrammingError:关系"bot_trade“不存在
EN

Stack Overflow用户
提问于 2017-10-11 19:58:16
回答 4查看 31.8K关注 0票数 19

我正试图在厨师网站上建立一个网站,我创建了一个名为"bots“的新应用程序,并在模型中添加了一个名为Trade的类,其中列出了2个参数、”标题“和”单位“。在迁移和运行服务器之后,当我打开管理面板并单击面板中的"+ add“按钮创建一个交易(见图)。Django网页返回此错误:

代码语言:javascript
运行
复制
django.db.utils.ProgrammingError: relation "bot_trade" does not exist
LINE 1: ...."id", "bots_unit"."sell", "bots_unit"."buy" FROM "bots_unit...

Additonal Info:使用postgreSQL在码头上运行my django

管理面板图片

Models.py

代码语言:javascript
运行
复制
from django.db import models
from datetime import date
#from django.contrib.auth.models import AbstractUser
#from .models import User
from django.urls import reverse
from django.urls import reverse_lazy
from django.conf import settings
import uuid


class Unit(models.Model):

TRADE_UNIT = (
    ('ETH', 'Ethereum'),
    ('BTC', 'Bitcoin'),
    ('LTC', 'Litecoin'),
    ('IOT', 'IOTA'),
    ('OMG', 'OmiseGo'),
    ('BCH', 'BitcoinCash'),

)

sell = models.CharField(max_length=3, choices=TRADE_UNIT, blank=True, default='ETH', help_text='Currency to Sell')
buy = models.CharField(max_length=3, choices=TRADE_UNIT, blank=True, default='BTC', help_text='Currency to Buy')

def get_absolute_url(self):
    """
    Returns the url to access a particular author instance.
    """
    return reverse('unit-detail', args=[str(self.id)])

def __str__(self):
    """
    String for representing the Model object.
    """
    return '%s, %s' % (self.sell, self.buy)

class Meta:
    db_table = 'bots_unit'
    ordering = ['sell','buy']


class Trade(models.Model):
title = models.CharField(max_length=200)
unit = models.ForeignKey('Unit', on_delete=models.SET_NULL, null=True)


def __str__(self):
    """
    String for representing the Model object.
    """
    return self.title

def get_absolute_url(self):
    """
    Returns the url to access a particular book instance.
    """
    return reverse('trade-detail', args=[str(self.id)])

class Meta:
    db_table = 'bots_trade'


class TradeInstance(models.Model):
"""
Model representing a specific copy of a book (i.e. that can be borrowed from the library).
"""
id = models.UUIDField(primary_key=True, default=uuid.uuid4, help_text="Unique ID for this particular trade across whole database")
trade = models.ForeignKey('Trade', on_delete=models.SET_NULL, null=True)
amount = models.CharField(max_length=200)
price = models.CharField(max_length=200)
imprint = models.CharField(max_length=200)
time_initiated = models.DateTimeField(null=True, blank=True)
#initiator = models.ForeignKey(AbstractUser, 
on_delete=models.SET_NULL, null=True, blank=True)

position_status = (
    ('L', 'Long'),
    ('S', 'Short'),
)

position = models.CharField(max_length=1, choices=position_status, blank=True, default='L', help_text='Order Type')

class Meta:
    ordering = ["position"]


def __str__(self):
    """
    String for representing the Model object
    """
    return '%s (%s)' % (self.id,self.trade.title)

Admin.py

代码语言:javascript
运行
复制
from django.contrib import admin
from .models import Trade, TradeInstance, Unit



# Define the admin class
@admin.register(Trade)
class TradeAdmin(admin.ModelAdmin):
    pass


@admin.register(Unit)
class UnitAdmin(admin.ModelAdmin):
    pass

UPDATE1: --我删除了迁移文件夹中的内容几次,但是在运行“makemigrations”和“”之后,“0001.initial.py”中的内容是这样的:

代码语言:javascript
运行
复制
# -*- coding: utf-8 -*-
# Generated by Django 1.10.8 on 2017-10-12 17:55
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion
import uuid


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Trade',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='TradeInstance',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, help_text='Unique ID for this particular trade across whole database', primary_key=True, serialize=False)),
                ('amount', models.CharField(max_length=200)),
                ('price', models.CharField(max_length=200)),
                ('imprint', models.CharField(max_length=200)),
                ('time_initiated', models.DateTimeField(blank=True, null=True)),
                ('position', models.CharField(blank=True, choices=[('L', 'Long'), ('S', 'Short')], default='L', help_text='Order Type', max_length=1)),
                ('trade', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='bots.Trade')),
            ],
            options={
                'ordering': ['position'],
            },
        ),
        migrations.CreateModel(
            name='Unit',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('sell', models.CharField(blank=True, choices=[('ETH', 'Ethereum'), ('BTC', 'Bitcoin'), ('LTC', 'Litecoin'), ('IOT', 'IOTA'), ('OMG', 'OmiseGo'), ('BCH', 'BitcoinCash')], default='ETH', help_text='Currency to Sell', max_length=3)),
                ('buy', models.CharField(blank=True, choices=[('ETH', 'Ethereum'), ('BTC', 'Bitcoin'), ('LTC', 'Litecoin'), ('IOT', 'IOTA'), ('OMG', 'OmiseGo'), ('BCH', 'BitcoinCash')], default='BTC', help_text='Currency to Buy', max_length=3)),
            ],
            options={
                'ordering': ['sell', 'buy'],
            },
        ),
        migrations.AddField(
            model_name='trade',
            name='unit',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='bots.Unit'),
        ),
    ]

当我运行“展示迁移”时:

代码语言:javascript
运行
复制
dominic@dom-Inspiron-7559:~/Desktop/Projects/vickibot/vicki$ docker-compose -focal.yml run django python manage.py showmigrations
Postgres is up - continuing...
account
 [X] 0001_initial
 [X] 0002_email_max_length
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
bots
 [X] 0001_initial
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
sessions
 [X] 0001_initial
sites
 [X] 0001_initial
 [X] 0002_alter_domain_unique
 [X] 0003_set_site_domain_and_name
socialaccount
 [X] 0001_initial
 [X] 0002_token_max_lengths
 [X] 0003_extra_data_default_dict
users
 [X] 0001_initial

UPDATE2:

'manage.py迁移--假机器人零‘输出:

代码语言:javascript
运行
复制
dominic@dom-Inspiron-7559:~/Desktop/Projects/vickibot/vicki$ **docker-compose -f local.yml run django python manage.py migrate --fake bots zero**
Postgres is up - continuing...
Operations to perform:
  Unapply all migrations: bots
Running migrations:
  Rendering model states... DONE
  Unapplying bots.0001_initial... FAKED

'manage.py迁移机器人‘输出:

代码语言:javascript
运行
复制
dominic@dom-Inspiron-7559:~/Desktop/Projects/vickibot/vicki$ docker-compose -f local.yml run django python manage.py migrate bots
Postgres is up - continuing...
Operations to perform:
  Apply all migrations: bots
Running migrations:
  Applying bots.0001_initial... OK
EN

Stack Overflow用户

发布于 2022-07-20 09:36:04

如果其他人在寻找django.db.utils.ProgrammingError时遇到了这个问题,请注意,这个问题涉及到does not exists问题。如果您正在寻找错误relation already exists,您可以在链接django.db.utils.ProgrammingError:关系已经存在中找到这个问题。

很好的解释可以在这里找到https://dev.to/siumhossain/djangodbutilsprogrammingerror-column-of-relation-appnametable-already-exists-231g

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46696518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档