问题列表 - 第25598页

在Python/Django中存储分层(父/子)数据:MPTT替代?

我正在寻找一种在Django中存储和使用分层(父/子)数据的好方法.我一直在使用django-mptt,但它似乎与我的大脑完全不兼容 - 我最终在非显而易见的地方出现了非明显的错误,主要是在树中移动物体时:我最终处于不一致的状态,其中一个节点及其父节点将不同意他们的关系.

我的需求很简单:

  • 给定一个节点:
    • 找到它的根
    • 找到它的祖先
    • 找到它的后代
  • 用树:
    • 轻松移动节点(即更改父节点)

我的树会很小(超过20个级别的最多10k节点,通常要小得多,比如10个节点,有1或2个级别).

我不得不认为必须有一种更简单的方法来在python/django中做树.是否有其他方法可以更好地保持一致性?

python django tree mptt django-mptt

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

从Time对象获取下一个/上个月

我有一个Time对象,想找到下一个/上个月.添加减去天数不起作用,因为每月的天数不同.

time = Time.parse('21-12-2008 10:51 UTC')
next_month = time + 31 * 24 * 60 * 60
Run Code Online (Sandbox Code Playgroud)

随着人们不得不照顾滚动,月份的增量也会下降

time = Time.parse('21-12-2008 10:51 UTC')
next_month = Time.utc(time.year, time.month+1)

time = Time.parse('01-12-2008 10:51 UTC')
previous_month = Time.utc(time.year, time.month-1)
Run Code Online (Sandbox Code Playgroud)

我发现的唯一工作是

time = Time.parse('21-12-2008 10:51 UTC')
d = Date.new(time.year, time.month, time.day)
d >>= 1
next_month = Time.utc(d.year, d.month, d.day, time.hour, time.min, time.sec, time.usec)
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式做到这一点,我没有看到?你会怎么做?

ruby

34
推荐指数
7
解决办法
4万
查看次数

在Python中删除根权限

我想让一个Python程序开始监听端口80,但之后执行没有root权限.有没有办法放弃root或没有它的端口80?

python unix linux permissions root

46
推荐指数
4
解决办法
2万
查看次数

在Android中使用命名空间处理RSS源

我正在尝试编写一个XML解析器,它采用RSS提要并获取<media:thumbnail>标记的url属性中显示的图像URL .这一切都是通过完成android.Util.Xml,并且是对此处所示代码的修改.我正在尝试使用的示例RSS源是BBC新闻RSS源.

但是,媒体是一个额外的命名空间&(可能)因此我的解析器不能正常工作.

我的解析方法的一个版本如下.有没有(毫无疑问是简单的)方法来获取我的图像URL列表?

public List<string> parse() {
    URL feedUrl = new URL("http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml");

    InputStream feedStream;

    try {
        feedStream = feedUrl.openConnection().getInputStream();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }              

    final List<string> ret = new ArrayList<string>();

    RootElement root = new RootElement("rss");
    Element channel = root.getChild("channel");
    Element item = channel.getChild("item");

    item.getChild("media", "thumbnail").getChild("url").setEndTextElementListener(new EndTextElementListener() {
        public void end(String body) {
            ret.add(body);
        }
    });

    try {
        Xml.parse(feedStream, Xml.Encoding.UTF_8, root.getContentHandler());
    } catch (Exception e) {
        throw new …
Run Code Online (Sandbox Code Playgroud)

rss android namespaces xml-namespaces

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

SQL Server - 架构/代码分析规则 - 您的规则包含哪些内容?

我们使用Visual Studio Database Edition(DBPro)来管理我们的架构.这是一个很棒的工具,它可以做很多事情,可以根据规则分析我们的模式和T-SQL代码(很像FxCop用C#代码做的事情),并将某些事情标记为警告和错误.

一些示例规则可能是每个表必须有一个主键,列名中没有下划线,每个存储过程必须有注释等.

DBPro内置的规则数量相当少,有点奇怪.幸运的是,DBPro有一个允许开发人员创建自己的API.我很好奇您和您的数据库团队将创建的规则类型(架构规则和T-SQL规则).查看一些规则可能有助于我们决定应该考虑什么.

谢谢 - 兰迪

sql t-sql sql-server code-analysis

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

gzip:stdout:运行自定义备份脚本时文件太大

我创建了一个简单的siple备份脚本,只备份某些文件和文件夹.

tar -zcf $DIRECTORY/var.www.tar.gz /var/www
tar -zcf $DIRECTORY/development.tar.gz /development
tar -zcf $DIRECTORY/home.tar.gz /home
Run Code Online (Sandbox Code Playgroud)

现在这个脚本运行大约30分钟然后给我以下错误

gzip: stdout: File too large
Run Code Online (Sandbox Code Playgroud)

我可以使用shell脚本或解决此错误的方法来备份我的文件的任何其他解决方案?我很感激任何帮助.

bash shell

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

Android新手:openOrCreateDatabase():sqlite文件在哪里?

我打电话的时候

myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null);
Run Code Online (Sandbox Code Playgroud)

数据库文件在哪里创建?

我找不到任何地方.O_O

database sqlite android

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

使用Reactive Extensions创建可观察的鼠标拖动

我有以下内容

var leftMouseDown = Observable.FromEvent<MouseButtonEventArgs>(displayCanvas, "MouseLeftButtonDown");
var leftMouseUp = Observable.FromEvent<MouseButtonEventArgs>(displayCanvas, "MouseLeftButtonUp");
var mouseMove = Observable.FromEvent<MouseEventArgs>(displayCanvas, "MouseMove");

var leftMouseDragging = from down in leftMouseDown
                        let startPoint = down.EventArgs.GetPosition(displayCanvas)
                        from move in mouseMove.TakeUntil(leftMouseUp)
                        let endPoint = move.EventArgs.GetPosition(displayCanvas)
                        select new { Start = startPoint, End = endPoint };
Run Code Online (Sandbox Code Playgroud)

当我订阅它时,它会给我拖动的起点和当前的终点.现在我需要在拖动完成后做一些事情.我试图用RX完全做到这一点并没有成功,最终做到了

leftMouseDragging.Subscribe(value=>
    {
        dragging = true;
        //Some other code
    });

leftMouseUp.Subscribe(e=>
    {
        if(dragging)
        {
            MessageBox.Show("Just finished dragging");
            dragging = false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到我拖动鼠标右键.然后,当我单击鼠标左键时,我会看到消息框.如果我只做一个左键拖动我得到消息框,然后单击鼠标左键不会产生该框.我想在没有外部状态的情况下这样做,但如果没有别的,我至少希望它能正常工作.

仅供参考:我尝试拖动易失性并使用锁定,但这不起作用.

编辑

事实证明我的问题是右键单击上下文菜单.一旦我摆脱了我的上述代码工作.所以,现在我的问题是如何获得上下文菜单并仍然使我的代码工作.我假设上下文菜单处理鼠标左键并且不知何故导致我的代码不起作用,但我仍然困惑不解.

c# system.reactive

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

PostgreSQL自定义异常?

在Firebird中,我们可以声明自定义异常,如下所示:

CREATE EXCEPTION EXP_CUSTOM_0'异常:自定义异常';

这些都存储在数据库级别.在存储过程中,我们可以像这样引发异常:

EXCEPTION EXP_CUSTOM_0;

PostgreSQL中有相同的东西吗?

postgresql exception plpgsql

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

将结果集存储到数组中

我知道这应该是简单的,我可能直接盯着问题,但再一次我卡住了,需要代码大师的帮助.

即时尝试从jdbc中的列中取一行,并将它们放在一个数组中.

我这样做如下:

public void fillContactList()
       {
           createConnection();
           try
           {
               Statement stmt = conn.createStatement();
               ResultSet namesList = stmt.executeQuery("SELECT name FROM Users");
               try
               {
                   while (namesList.next())
                   {
                       contactListNames[1] = namesList.getString(1);
                       System.out.println("" + contactListNames[1]);
                   }   
               }
               catch(SQLException q)
               {

               }
               conn.commit();
               stmt.close();
               conn.close();
           }
           catch(SQLException e)
           {

           }
Run Code Online (Sandbox Code Playgroud)

creatConnection是一个已经定义的方法,可以完成它显然做的事情.我创建了我的结果集,而另一个,我将该列的字符串存储到一个数组中.然后打印出来以便进行测量.也确保它在那里.

问题是它将整个列存储到contactListNames [1]

我想让它将column1第1行存储到[1]

然后第1列第2行进入[2]

我知道我可以用循环做到这一点.但我不知道从一列中一次只能一行.有任何想法吗?

ps我读过api,我不能看到任何合适的东西.

java sql jdbc resultset

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