小编use*_*631的帖子

Django auto_now的行为

我有以下型号:

class MetaData(models.Model):
    created_at = models.DateTimeField(auto_now_add=True, auto_now=False)
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True,
                                   related_name='%(app_label)s_%(class)s_created_by')
    updated_at = models.DateTimeField(auto_now_add=False, auto_now=True)
    updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True,
                                   related_name='%(app_label)s_%(class)s_updated_by')
Run Code Online (Sandbox Code Playgroud)

update_at字段也在创建时使用值完成,而不是为null.我希望只有在第一次保存/创建之后才有值.

难道我做错了什么 ?

django django-models

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

遍历 Spaghetti Stack 并反转到一棵树

我有一个意大利面堆栈(一种 N 元树数据结构,其中子节点具有指向父节点的指针)- 从数据库接收。

从数据库接收到的“堆栈”只是一个包含所有节点的列表,因此内部可以有多个堆栈。

节点是数据库中的记录,其中 parent.id 是到相同类型的另一条记录的外键。

class Node_Category:
  def __init__(self, value):
    self.value = value
    parent_id = id
Run Code Online (Sandbox Code Playgroud)

结构是这样的:

Category 1
 -Category 1_1
  --Category 1_1_1
 -Category 1_2
Category_2
Category_3
 -Category 3_1
 -Category 3_2
Run Code Online (Sandbox Code Playgroud)

我需要的:

现在我知道孩子的父母了。从父节点开始,我需要了解他的孩子。

所以我需要遍历“Spaghetti Stack”,将父节点中的连接添加到子节点,以便我可以从父节点遍历到子节点。

一个父级可以有 0 个、一个或多个子级。

因为我不知道堆栈的深度,所以我尝试递归进行。

此外,我认为某种形式的记忆是必要的,因为通过数组循环父级的父级可以获得多次访问。

我试过的:

   def _recurse_for_parents(self, category, path=None):

    if path is None:
        path = []
    path.append(category)
    if category.parent:
        return self._recurse_for_parents(category.parent, path)
    return path

 for record in categories:
            self._recurse_for_parents(category)
Run Code Online (Sandbox Code Playgroud)

问题:

在循环中,我可以击中父级、一级子级、二级级等:

Child1_L2-Child1_L1->parent; Child1_L1->parent; parent->Null
Child1_L1->parent; parent->Null
Child2_L1->parent; parent->Null
Run Code Online (Sandbox Code Playgroud)

所以,我多次在不同的深度上走同一条路。同样对于每条路径,我需要添加从他的父母回到孩子的链接。

python algorithm recursion stack tree-traversal

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

Django删除带有确认弹出式窗口和多个成功URL的CBV

就我而言,可以从以下实例中删除实例模型:

  • ListView继承的View
  • DetailView继承的View

默认情况下,调用删除视图时:

  • get函数调用“ confirm_delete”模板。相反,我希望出现一个弹出窗口/模式,如果delete在模式中单击,则会删除该对象
  • 如果delete操作在ListView上,则删除后用户将保留在ListView上,并且ListView内容将被更新

  • 如果delete操作在DetailView上,则删除后用户将被重定向到ListView或其他页面(取决于其他规则)

-

所以我想知道如何在删除之前进行Ajax调用,如何在删除中包含条件成功URL,这取决于我在执行操作之前所处的位置。

django ajax django-templates django-forms django-views

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

点击取消按钮返回上一页

我有一个取消按钮,我需要在模板中获取上一页的 url,以防用户单击取消返回。

上一页通常是列表或详细信息页面。

在详细信息的情况下,我有对象,因此更容易返回,但是在列表页面的情况下我做什么,以及我如何知道前面是详细信息还是列表页面。

django django-templates

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

将 ls 的输出转换为 python 列表

我使用 bash 命令获取目录列表ls(无法在远程使用 python)

如何ls在包含文件名的 python 列表/集中转换来自远程的返回?

python linux

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

Postgres 数据库:如何对多个属性进行建模,这些属性也可以具有多个值,并且与其他两个实体有关系

我有三个实体:项目、类别和属性。

AnItem可以是一个,也可以是多个Categories,因此存在 N:M 关系。

Item               ItemCategories                   Categories     

id name            item_id category_id             id    name     
1  alfa               1         1                   1   chipset
                      1         2                   2   interface 
Run Code Online (Sandbox Code Playgroud)

根据它们所在的“类别”,可以Item有多个。Attributes

例如,Category“芯片组”中的项目可以具有以下属性:“接口”、“内存”、“技术”。

这些属性有一组不经常更改的预定义值,但它们可以更改。

例如:“内存”只能是 ddr2、ddr3、ddr4。

Attributes                                 CategoryAttributes

id name     values                          category_id attribute_id    
1  memory   {ddr2, ddr3, ddr4}              1              1
Run Code Online (Sandbox Code Playgroud)

Item“芯片组”中的Category可以访问该属性Attribute,并且只能具有 Null 或该属性的预定义值。

我想使用EnumorJson作为属性值,但我还有另外两个条件:

项目属性

item_id attribute_id   value
 1        1          {ddr2, ddr4}
Run Code Online (Sandbox Code Playgroud)

1) 如果一个属性出现在2个类别中,并且一个Ithe同时出现在两个类别中,则该属性只能显示一次。

2)我需要使用 的值rank,因此如果一个项目出现两个对应的属性值,如果只有一个,则排名应该更大,否则该值不存在。

3)为属性创建单独的表不是一个选项,因为数量不固定,并且可能很大。

因此,我不知道数据库设计中的最佳选择是限制值并用于订单排名。

postgresql database-design relational-database

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

OpenPyXL - 如何根据某些条件从 Excel 文件中删除行?

我想从 excel 文件中删除行,知道这些值。我使用 openpyxl:

key_values_list 是带有数字的列表(所有都存在于 excel 文件中,列上)

   wb = load_workbook(src)
    sheet = wb['Sheet 1']

    for i in range(2, sheet.max_row + 1):
        if sheet.cell(row=i, column=1).value in key_values_list:
            sheet.delete_rows(i, 1)
    wb.save(src)
Run Code Online (Sandbox Code Playgroud)

上面的代码不会删除所有对应的行

python python-3.x openpyxl

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

Python 变量默认值的快捷方式是另一个变量值(如果它是 None)

我有以下函数声明:

def set_data(obj=None, name='delp', type=None):
Run Code Online (Sandbox Code Playgroud)

是否有一个 python 快捷方式,其中类型等于“名称”值(默认通过 r)如果是 None ?

python python-3.x

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

如何在 windows 上停止 Django 开发服务器

我在这里找到了如何在 Linux 上停止 Django 服务器而不是在 Windows 上停止的答案。

我真的需要重新启动我的机器吗?

windows django

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

模型和自定义查询集之间的 Django 循环导入依赖

我正在使用一些复杂的原始查询集,我将模型和模型自定义查询集分开在 2 个单独的文件中。

在模型中,我需要导入自定义查询集:

objects = OwnerModelQuerySet.as_manager()
Run Code Online (Sandbox Code Playgroud)

对于我使用的自定义查询集类的每个方法:

 Owner.objects.raw(
Run Code Online (Sandbox Code Playgroud)

所以我需要导入模型。所以我有一个循环依赖问题。自定义查询集中是否有任何方法可以在不直接使用名称的情况下访问/获取模型?

django django-models

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

检查变量是否是类型的实例或无

我有一个可以是int或None的变量.如果是别的我提出错误.

我有以下代码:

if not isinstance(id, int) or id is not None:
    raise AttributeError('must be called with a id of type INT or NONE')
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为每个条件都否定了另一个条件并且总是会引发错误;

python python-3.x python-3.5 python-3.6

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