首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >位于/admin/order/order/ relation "order_order“的计数不存在第1行: SELECT COUNT(*) AS "__count”FROM "order_order“

位于/admin/order/order/ relation "order_order“的计数不存在第1行: SELECT COUNT(*) AS "__count”FROM "order_order“
EN

Stack Overflow用户
提问于 2021-02-01 05:25:49
回答 2查看 175关注 0票数 0

我正在使用django rest framework,我有一个名为order的应用程序。我想改变我的订单逻辑,我改变了订单应用的模型。但是,当我想要在管理面板中打开order和order_item模型时,我会遇到以下错误:

代码语言:javascript
复制
ProgrammingError at /admin/order/order/
relation "order_order" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "order_order"

而且,当我运行migrate命令时,它不能很好地迁移,并且不能在数据库中创建order和OrderItem选项卡。我正在使用postgres db。下面是我的代码:

型号:

代码语言:javascript
复制
class Order(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE)
    ref_code = models.CharField(max_length=20, blank=True, null=True)
    # products = models.ManyToManyField(OrderItem)
    created_date = models.DateTimeField(auto_now_add=True)
    ordered_date = models.DateTimeField()
    ordered = models.BooleanField(default=False)

    def __str__(self):
        return self.user.full_name

    def total_price(self):
        total = 0
        for order_item in self.products.all():
            total += order_item.get_final_price()
        return total


class OrderItem(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE)
    order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name='products')
    ordered = models.BooleanField(default=False)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.PositiveSmallIntegerField(default=1)

    def __str__(self):
        return f"{self.quantity} of {self.product.name}"

    def get_total_item_price(self):
        return self.quantity * self.product.price

    def get_total_discount_item_price(self):
        return self.quantity * self.product.discount

    def get_amount_saved(self):
        return self.get_total_item_price() - self.get_total_discount_item_price()

    def get_final_price(self):
        if self.product.discount:
            return self.get_total_discount_item_price()
        return self.get_total_item_price()

管理员:

代码语言:javascript
复制
class OrderAdmin(admin.ModelAdmin):
    list_display = ['user',
                    'ordered',
                    'ordered_date',
                    'created_date',
                    'total_price'

                    ]
    list_display_links = ['user', ]
    list_filter = ['ordered', ]
    search_fields = [
        'user',
        'ref_code'
    ]


admin.site.register(Order, OrderAdmin)
admin.site.register(OrderItem)

序列化程序:

代码语言:javascript
复制
class OrderItemSerializer(serializers.ModelSerializer):
    product = serializers.SerializerMethodField()
    final_price = serializers.SerializerMethodField()

    class Meta:
        model = OrderItem
        fields = (
            'id',
            'product',
            'quantity',
            'final_price'
        )

    def get_product(self, obj):
        return ProductSerializer(obj.product).data

    def get_final_price(self, obj):
        return obj.get_final_price()


class OrderSerializer(serializers.ModelSerializer):
    order_items = serializers.SerializerMethodField()
    total = serializers.SerializerMethodField()

    class Meta:
        model = Order
        fields = (
            'id',
            'order_items',
            'total',
        )

    def get_order_items(self, obj):
        return OrderItemSerializer(obj.products.all(), many=True).data

    def get_total(self, obj):
        return obj.total_price()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-02 05:10:05

我正在使用容器平台和docker平台中的posgres。在posgres容器中,我使用了网络和存储。因为我在存储中有一个运行的容器,所以它是保存的数据,我不能通过删除pgadmin中的db或重新启动容器或通过迁移更改db来更改它们。我移除了我的容器,并制作了新的容器。这样问题就解决了。

票数 0
EN

Stack Overflow用户

发布于 2021-02-01 05:58:17

我想对此发表评论,但您是否尝试过使用python manage.py migrate yourapp --fake

Here is where I got it from

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

https://stackoverflow.com/questions/65984415

复制
相关文章

相似问题

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