小编mus*_*XXX的帖子

在没有任何参数的情况下调用脚本时,使用python argparse显示帮助消息

这可能很简单.假设我有一个使用argparse来处理命令行参数/选项的程序.以下将打印"帮助"消息:

./myprogram -h
Run Code Online (Sandbox Code Playgroud)

要么:

./myprogram --help
Run Code Online (Sandbox Code Playgroud)

但是,如果我在没有任何参数的情况下运行脚本,它就不会做任何事情.我想要它做的是在没有参数的情况下调用它时显示用法消息.怎么做的?

python argparse

203
推荐指数
10
解决办法
11万
查看次数

似乎无法清理分离的DOM元素

我正在使用jquery-ui Tabs,我遇到了删除标签时出现的问题.该选项卡似乎与其内容div一起被删除,但当您查看Chrome DevTools配置文件中的堆(删除选项卡后)时,您将看到选项卡li和div元素仍然存在,但已分离.随着时间的推移,重复添加/移除突片导致这些元件累积.例如,如果添加选项卡10次,则会在堆快照中显示10个分离的div元素和10个分离的li元素:

堆分离快照与分离元素

我有以下观点:

TabLabel = Marionette.ItemView.extend({
    template: "#tab-label",
    tagName: "li",
    events: {
        "click .ui-icon-close": "closeTab"
    },  
    closeTab: function(e) {
        this.$el.contents().remove();
        this.model.collection.remove(this.model);
        $("#main-container").tabs("refresh");
        this.close();
    }   
}); 

TabContainer = Marionette.ItemView.extend({
    template: "#tab-container",
    tagName: "div",
    onBeforeRender: function() {
        this.$el.attr("id", "div-" + this.id);
    },  
    onClose: function() {
        // This removes the region that contains the container
        App.layout.removeRegion(this.containerRegion);
    }   
});

TabLabels = Marionette.CollectionView.extend({
    tagName: "ul"
});

TabContainers = Marionette.CollectionView.extend({
    tagName: "div"
});
Run Code Online (Sandbox Code Playgroud)

视图实例化如下:

tabs = new TabsCollection(); // Create a new collection …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui backbone.js marionette

15
推荐指数
1
解决办法
9316
查看次数

使用fixture将django admin auth.groups和用户迁移到新数据库

这是场景:

我正在使用django的管理界面,我希望能够通过fixtures加载用户和组(如果可能的话.)我可以像这样转储用户/组:

manage.py dumpdata auth auth.group > usersandgroups.json
Run Code Online (Sandbox Code Playgroud)

但是在将数据加载到一个全新的数据库中时......

manage.py loaddata <appname>/fixtures/usersandgroups.json
Run Code Online (Sandbox Code Playgroud)

我得到了与外键等有关的各种错误.这是一个例子:

django.db.utils.IntegrityError: insert or update on table "auth_permission" violates foreign key constraint "content_type_id_refs_id_728de91f"

DETAIL: Key (content_type_id)=(37) is not present in table "django_content_type".
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,我真的很感激.提前致谢!

django postgresql django-admin django-manage.py django-fixtures

8
推荐指数
1
解决办法
4363
查看次数

在单个视图中序列化多个模型

这是场景:

我有两个型号; FileObj和DirObj.

class DirObj(models.Model):
    [...]
    parent = models.ForeignKey('self')
    [...]

class FileObj(models.Model):
    [...]
    parent = models.ForeignKey(DirObj)
    [...]
Run Code Online (Sandbox Code Playgroud)

我有以下序列化器:

class FileObjSerializer(serializers.ModelSerializer):
    [...]
    class Meta:
        model = FileObj

class DirObjSerializer(serializers.HyperlinkedModelSerializer):
    [...]
    parent = serializers.HyperlinkedRelatedField(
        view_name = 'dirobj-detail')
    class Meta:
        model = DirObj
Run Code Online (Sandbox Code Playgroud)

让我们说当用户浏览'/ directories/[dir_id]'时,我想在单个视图中返回由'dir_id'指定的DirObj 的文件目录内容,它使用两个不同的序列化程序.现在我有(不完全,但足够接近所以你得到的要点)以下内容:

class DirContents(generics.GenericAPIView):
    def get(self, request, *args, **kwargs):
        files = FileObj.objects.filter(parent = kwargs.get('dir_id'))
        dirs = DirObj.objects.filter(parent = kwargs.get('dir_id'))
        files_serializer = FileObjSerializer(files, many = True)
        dirs_serializer = DirObjSerializer(dirs, many = True)
        response = files_serializer.data + dirs_serializer.data
        return …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

1
推荐指数
1
解决办法
1万
查看次数