You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Django命令行工具检查并查询自定义模型

嘿,我来帮你梳理下怎么用Django命令行查询你创建的这两个模型~

首先先把你给出的模型代码补全并格式化(假设Widget的inventory字段是整数类型,做了合理补全):

from django.db import models

class Finish(models.Model):
    name = models.CharField(max_length=255, blank=False, unique=True)
    date_created = models.DateTimeField(auto_now_add=True)
    date_modified = models.DateTimeField(auto_now=True)

    def __str__(self):
        return "{}".format(self.name)

class Widget(models.Model):
    name = models.CharField(max_length=255, blank=False, unique=True)
    inventory = models.IntegerField(default=0)  # 补全合理的字段定义
    date_created = models.DateTimeField(auto_now_add=True)
    date_modified = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

接下来咱们一步步用Django命令行做查询操作:

1. 进入Django交互式Shell

打开终端,切换到你的Django项目根目录,运行:

python manage.py shell

2. 导入你的模型

记得把yourapp替换成你实际的应用名称:

from yourapp.models import Finish, Widget

3. 常用查询示例

获取所有实例

# 获取所有Finish记录
all_finishes = Finish.objects.all()
# 打印所有Finish名称
for finish in all_finishes:
    print(finish.name)

# 获取所有Widget记录
all_widgets = Widget.objects.all()

过滤特定条件的实例

# 获取名称为"Matte Black"的Finish(替换成你实际的名称)
specific_finish = Finish.objects.get(name="Matte Black")

# 获取库存大于10的Widget
low_stock_widgets = Widget.objects.filter(inventory__gt=10)

# 获取名称包含"Widget"的记录(不区分大小写的模糊查询)
matching_widgets = Widget.objects.filter(name__icontains="Widget")

创建新实例

# 创建一个新的Finish
new_finish = Finish.objects.create(name="Gloss White")

# 创建一个新的Widget
new_widget = Widget.objects.create(name="Basic Widget", inventory=50)

更新实例

# 先找到要更新的实例
widget_to_update = Widget.objects.get(name="Basic Widget")
# 更新库存数值
widget_to_update.inventory = 30
# 保存更改到数据库
widget_to_update.save()

删除实例

# 删除指定的Finish
finish_to_delete = Finish.objects.get(name="Gloss White")
finish_to_delete.delete()

如果之后你给Widget和Finish加上关联(比如外键),还能做关联查询,举个例子:

# 假设Widget新增外键字段:finish = models.ForeignKey(Finish, on_delete=models.CASCADE)
# 获取属于"Matte Black"的所有Widget
widgets_for_finish = Widget.objects.filter(finish__name="Matte Black")

内容的提问来源于stack exchange,提问作者goterpsgo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:53:44