使用参数和选项编写自定义管理命令 - 所需字段的解释

2024-07-04

在我的 django 应用程序中,我正在编写一个自定义管理命令,它将根据传递的参数创建一个对象的实例,并可以选择根据是否有选项将其保存到数据库--save通过与否。

我在这方面得到了很多帮助Django 文档 https://docs.djangoproject.com/en/2.2/howto/custom-management-commands/本身。还得到了重要的指示here https://stackoverflow.com/questions/10568864/two-arguments-in-django-admin-custom-command关于如何传递多个参数以及here https://stackoverflow.com/questions/4208006/how-does-one-use-django-custom-management-command-option关于如何拥有选择。

from optparse import make_option

class Command(BaseCommand):
  option_list = BaseCommand.option_list + (
    make_option('--delete',
        action='store_true',
        dest='delete',
        default=False,
        help='Delete poll instead of closing it'),
    )

  def handle(self, *args, **options):
    # ...
    if options['delete']:
        poll.delete()
    # ...

但是我无法找到 make_option 中字段的详细解释。例如optparse.make_option http://nullege.com/codes/search/optparse.make_option lists

Instance attributes:
_short_opts : [string]
_long_opts : [string]

action : string
type : string
dest : string
default : any
nargs : int
const : any
choices : [string]
callback : function
callback_args : (any*)
callback_kwargs : { string : any }
help : string
metavar : string

In this help是不言自明的,我明白了什么dest意思是,但我不清楚是什么action='store_true'方法。事实上,如果有人能给我一个关于所有论点的简短描述,那就太好了make_option mean...

多谢


文档中 make_option 的解释http://docs.python.org/2/library/optparse.html#populate-the-parser http://docs.python.org/2/library/optparse.html#populating-the-parser

make_option() 是一个用于创建 Option 实例的工厂函数; 目前它是 Option 构造函数的别名。未来版本 optparse 可以将 Option 分成几个类,而 make_option() 将选择正确的类来实例化。不实例化选项 直接地。

这些是所有可能的选项属性:

http://docs.python.org/2/library/optparse.html#option-attributes http://docs.python.org/2/library/optparse.html#option-attributes

django 管理命令中的常见用法:

class Command(BaseCommand):
    help = "Command to import a list of X"
    option_list = BaseCommand.option_list + (
        make_option(
            "-f", 
            "--file", 
            dest = "filename",
            help = "specify import file", 
            metavar = "FILE"
        ),
    )

    option_list = option_list + (
        make_option(
            "-s", 
            "--slug", 
            dest = "category",
            help = "category slug", 
            metavar = "SLUG"
        ),
    )

    def handle(self, *args, **options):
            # make sure file option is present
            if options['filename'] == None :
                raise CommandError("Option `--file=...` must be specified.")
        
            # make sure file path resolves
            if not os.path.isfile(options['filename']) :
                raise CommandError("File does not exist at the specified path.")
    
            # make sure form option is present
            if options['category'] == None :
                raise CommandError("Option `--slug=...` must be specified.")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用参数和选项编写自定义管理命令 - 所需字段的解释 的相关文章

  • Django CSRF 验证失败。请求已中止

    我正在构建这篇 wiki 帖子 当我尝试保存数据时遇到错误 我现在使用的是 django 1 4 3 我使用的教程相当旧 所以我认为旧版本中没有包含 CSRF Forbidden 403 CSRF verification failed R
  • 如何从 django 中的 RawQuerySet 检索值?

    我的输入查询是 query select from tab1 left join tab2 on tab2 patient id tab1 patient id tab3 left join tab4 on tab4 patient id
  • 尚无法为“created_by”创建表单字段,因为其相关模型“users.User”尚未加载

    我最近安装了 Blogango 但出现了以下错误 CommandError One or more models did not validate blogango blogentry created by defines a relati
  • 模拟 default=timezone.now 进行单元测试

    我正在尝试为执行大量日期时间操作的 django 应用程序编写单元测试 我已经安装了mock http www voidspace org uk python mock 给 django 打猴子补丁timezone now为了我的测试 虽然
  • Django 和原始 Python 之间的性能

    我想知道使用纯 python 文件制作网页和使用 Django 之间的性能差异是什么 我只是想知道两者之间是否有显着差异 谢谢 Django 是纯Python 因此每个类似语句或表达式的执行时间将是相同的 需要理解的是 在进行 Web 开发
  • Django Imagefield 无法通过 ModelForm 正常工作

    我确信我正在做一些明显愚蠢的事情 但我已经尝试了几个小时来解决它 但没有任何事情让我惊讶 我正在使用 ModelForm 因此我可以公开模型中的一些字段以进行编辑 2x 图像字段 1x 文本字段 表单已处理且 TextField 可以工作
  • Django admin - 禁用特定模型实例的“编辑”

    您好 我想根据模型状态禁用某些模型实例的编辑 在 Django 管理中 如果状态大于 1 编辑将被禁用 我知道如何禁用左侧的该链接 但如果我设置正确的 URL 它仍然可以编辑 因此不欢迎此解决方案 我的型号 STATUS CHOICES 1
  • 模型字段的外键?

    我想要一个foreign key我的模型与的关系username领域中的User表 存储user创建于django contrib auth forms UserCreationForm 这是我的模型的样子 class Blog model
  • Django鼻子只运行项目测试

    I added nose django nose nose exclude coverage到我的 buildout cfg 并运行 buildout 此外我还添加了TEST RUNNER和NOSE ARGS到我的settings py 在
  • Django:刷新命令没有完全清除数据库,重置失败

    我重写了很多模型 并且由于我只是运行测试服务器 因此我执行 manage py Reset myapp 来重置数据库表 一切都工作正常 但这次我尝试这样做 但出现错误 完整错误 关系 myapp tagger 的约束owner id ref
  • 通过管道将 qrencode 传输到 eog 以避免创建文件

    终端中的以下行将为网络链接保存 png 图像文件 qrencode o qrcode png https en wikipedia org wiki Main Page 然后您可以使用以下命令查看二维码 eog qrcode png 如何将
  • 在 Django 中添加新的自定义权限

    我在 Django 模型中使用自定义权限 如下所示 class T21Turma models Model class Meta permissions can view boletim Can view boletim can view
  • django外键包含查询

    我有以下型号 class Command models Model server models ForeignKey Server user login models CharField max length 100 user run mo
  • 如何正确地对 Django 会话进行单元测试?

    Django 会话的行为在 标准 视图代码和测试代码之间发生变化 这使得我们不清楚如何为会话编写测试代码 谷歌搜索得出关于这个问题的两个相关讨论 通过以下方式更轻松地操纵会话 测试客户端 http code djangoproject co
  • 如何在 Django Rest 框架可浏览 API 中发送标头

    如何在 Django REST 框架可浏览 API 视图中发送标头 我通过匹配标头中传递的令牌来验证调用 我可以在邮递员中使用该 API 并且效果很好 但我想提供输入以将访问令牌放在 Django REST 框架的可浏览 API 上 作为参
  • Django 独特的 Slug(按 id)

    class Product models Model title models CharField max length 75 class Deal models Model product models ForeignKey Produc
  • 运行 Djangocollectstatic 时如何忽略目录?

    我正在使用 Django 1 3 Ubuntu 11 10 gunicorn 和 Nginx 运行一个小型测试项目 所有内容都在 virtualenv 中 现在我正在运行collectstatic 将静态文件放入 Nginx 提供服务的目录
  • 将今天日期设置为模型中的默认值

    如何在模型中将默认值设置为今天日期 我的型号 vote date models DateField 投票日期 null False Blank False 所有答案都不能解决最初的问题 重述问题 如何将日期字段的默认值设置为今天的日期并仍然
  • django value_list 外键中所有字段

    我有一个类 它有另一个类的外键 class MyEvent models Model msg models ForeignKey MyMessage event type models IntegerField choices EVENTS
  • 为唯一字段显示 Django 错误消息

    我想更改当重复条目尝试保存时的默认错误消息 而它们应该是唯一的 即unique True 很像这样 email models EmailField unique True error messages unique This email h

随机推荐

  • 如何使用 XSLT 输出 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 XSLT 设置 HTML5 文档类型 https stackoverflow com questions 3387127 set html5 doctype with xslt 我是 xslt
  • 一旦执行任何 Javascript,就告诉 Firebug 中断

    我继承了一堆代码 当我单击某些代码时 这些代码会执行意想不到的操作
  • 以编程方式获取 android:padding 属性

    从一个角度来看 如何以编程方式获取 android padding 属性的值 我目前正在使用 private static final String ANDROID NAMESPACE http schemas android com ap
  • Java 中“public static void”是什么意思?

    什么是public static void在Java中是什么意思 我正在学习过程中 在我正在工作的书中的所有示例中public static void出现在正在使用或创建的任何方法之前 这是什么意思 这是三个完全不同的事情 public意味
  • 如果条件不匹配,select 语句返回什么?

    例如 如果我有以下声明 declare uid int set uid select id from tablename where condition 在这种情况下 如果 select 没有返回结果 那么 uid be 简而言之 它将为空
  • 如何将路径附加到 .htaccess 中的 PHP include_path

    目前在我的网站上我使用的语句如下 include head php include head php include head php 取决于我有多少嵌套文件夹 我确信有更好的方法来做到这一点 我相信 htaccess是解决方案 但我不确定
  • IntelliJ IDEA 在“已完成,正在保存缓存”时挂起

    每次我在 IDEA 中执行 make 一个 Java 项目 时 编译过程都会挂起 并显示 已完成 正在保存缓存 我必须先终止这个进程才能继续 我尝试使用 文件 gt 使缓存无效 但没有成功 有任何想法吗 另一种解决方法是将您的 mac 主机
  • 将字典保存到 .XLSX 中

    使用Python Pandas 是否有一种快速简便的方法将Dict 由键的文件名和值的几列数据组成 保存到 XLSX 文件中 经过一番研究 我尝试使用以下代码将其转换为 Pandas DataFrame 因为我知道您可以从 Pandas D
  • 相当于 iphone / iOS 的 [[NSWorkspace sharedWorkspace] runningApplications]?

    我已经研究苹果文档有一段时间了 但还没有找到与sharedWorkspace可以从中得到的对象NSWorkspace在应用程序套件中 基本上 我只是想要runningApplications方法从中 有人能指出我正确的方向吗 没有这样的方法
  • Python:列表中元素之间的最大差异

    如果当前元素右侧的元素更大 我需要找到未排序列表中元素之间的最大差异 例如 myList 2 3 8 0 7 函数应计算如下 present element 2 is 3 gt 2 Yes Then 3 2 1 is 8 gt 2 Yes
  • 如何向 PostSharp 属性添加参数?

    我有一个简单的 PostSharp 日志记录属性 Serializable public class MethodLoggingAttribute OnMethodBoundaryAspect private ILog logger pub
  • 具有初始值的 as3 向量

    我想要实例化 a Vector
  • Ajax.BeginForm - 显示验证错误

    在 VS2008 中使用 MVC 项目模板 开箱即用 我注意到以下几点 以下是 Register aspx 表单的指定方式 选择注册按钮而不提供任何帐户信息会显示这一点 帐户创建失败 请更正错误并重试 您必须指定用户名 您必须指定电子邮件地
  • Chrome 扩展上的运行时错误

    Premise 尝试着写一个极其简单的chrome 扩展 作为测试 我想添加控制台日志记录以进行调试 但是 我不断收到此错误 未选中运行时 lastError在跑步的时候webRequestInternal addEventListener
  • 使用“使用 utf8;”给我“打印宽字符”

    如果我运行以下 Perl 程序 perl e use utf8 print 鸡 n 我收到这个警告 Wide character in print at e line 1 如果我运行这个 Perl 程序 perl e print 鸡 n 我
  • Python 错误(ValueError:_getfullpathname:嵌入空字符)

    我不知道如何解决它 请帮忙 我已经尝试了帖子中提到的所有内容导入 matplotlib pyplot 时出错 在适用于 Windows 10 家庭版 64 位 PC 的 Anaconda3 上 https stackoverflow com
  • NSURL isFileURL 总是返回 NO

    有人可以向我解释一下为什么下面的代码 NSString filePathString NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDomainMask YES
  • python - 同时重载多个运算符

    我有一个自定义类 我想重载几个算术运算符 并且想知道是否有一种方法可以避免必须单独为每个运算符编写代码 我还没有找到任何没有明确地一一重载每个运算符的示例 class Foo object a 0 def init self a self
  • 更改“关闭”状态下 UISwitch 的颜色

    我了解到我们可以更改 UISwitch 按钮在 打开 状态下的外观 但是否也可以在 关闭 状态下更改 UISwitch 的颜色 我的 swift2解决方案 let onColor your on state color let offCol
  • 使用参数和选项编写自定义管理命令 - 所需字段的解释

    在我的 django 应用程序中 我正在编写一个自定义管理命令 它将根据传递的参数创建一个对象的实例 并可以选择根据是否有选项将其保存到数据库 save通过与否 我在这方面得到了很多帮助Django 文档 https docs django