小编Paw*_*pel的帖子

Python:改组列表,但保留一些元素冻结

我有这样一个问题:

有一个类的元素列表CAnswer(不需要描述类),我需要对它进行洗牌,但是有一个约束 - 列表中的一些元素已经CAnswer.freeze设置为True,并且这些元素不能被洗牌,而是保留在它们的上面原始职位.所以,让我们说,对于给定的列表:

[a, b, c, d, e, f]
Run Code Online (Sandbox Code Playgroud)

如果所有元素都是CAnswer,但是c.freeze == True,对于其他元素freeze == False,可能的结果可能是:

[e, a, c, f, b, d]
Run Code Online (Sandbox Code Playgroud)

所以索引为2的元素仍处于其位置.

实现它的最佳算法是什么?

先感谢您 :)

python python-2.7

15
推荐指数
3
解决办法
1701
查看次数

Django模型:同一模型类的对象之间的一对一关系

可能的重复:
我可以拥有一个对自身有外键引用的 Django 模型吗?

我想在我的 Django 应用程序中实现一个简单的文件夹文件结构。所以我有一个存储文件夹的模型,但我也想存储这个文件夹和父文件夹之间的关系。模型的简化版本如下所示:

class mFolder(models.Model):
    name = models.CharField(max_length=50)
    parentFolder = models.ForeignKey(mFolder, unique=False, related_name="childrenFolders")
Run Code Online (Sandbox Code Playgroud)

然而这是不可能的,因为 mFolder 尚未声明。

这个问题有什么简单的解决方案吗?

提前感谢您的帮助。

django django-models python-2.7

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

为什么django模型会产生许多小问题而不是一个大问题?

很抱歉非特定问题,但我想这可能是一个有趣的问题.至少对我来说;)

我正在使用django模型一次从几个相关表中获取数据.当QuerySet得到支持时,我宁愿期望django像这样进行查询:

SELECT t1.field1, t1.field2, t2.field1, t2.field2 FROM t1
JOIN t2 ON (t1.fk_t2 = t2.pk);
Run Code Online (Sandbox Code Playgroud)

但不是我所想到的,我可以看到Django做这样的事情:

SELECT t1.field1, t1.field2, t1.fk_t2 FROM t1;
Run Code Online (Sandbox Code Playgroud)

然后为所有t1.fk_t2

SELECT t2.field1, t2.field2 FROM t2 WHERE id = (here comes some single id);
Run Code Online (Sandbox Code Playgroud)

这是默认的Django行为吗?为什么会这样?这更有效吗?我首先想到的是,制作JOIN需要进行交叉连接,然后过滤非常大的表,当进行多次单选时,您可以处理的数据不是真正需要的,但这只是一个想法.

谁能解释一下?提前致谢!

python django

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

标签 统计

django ×2

python ×2

python-2.7 ×2

django-models ×1