小编use*_*014的帖子

在Django模型中添加代码和方法会破坏它

我有一个类似于以下的Django模型:

class Person(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.TextField(unique=False)
Run Code Online (Sandbox Code Playgroud)

我想在models.py文件之外向一个人添加代码。所以我尝试导入它,从中继承并添加代码:例如:

class MyPerson(db.Person):
    def __init__(self, person_name):
        super(MyPerson, self).__init__(name=person_name)

    def print_person_info(self):
        print(self.name)
Run Code Online (Sandbox Code Playgroud)

我收到类似于此错误:

RuntimeError:模型类db.persons.models.Person没有声明显式的app_label,并且不在INSTALLED_APPS中的应用程序中。

尽管当然在我的settings.py文件中,但我确实将我的persons应用添加到了INSTALLED_APPS

我想我可以直接在内部添加代码,models.py但是这似乎非常不方便,因为我想在其中添加更多的代码,并且要针对多个模型添加代码。

有任何想法吗?

通常可以从模型继承吗?

python django model python-3.x

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

django 推迟相关模型查询集中的所有字段

我有一个需要第二个相关模型的查询 Model1.objects.all().select_related("model2__model3")

但我不需要来自模型 2 的任何字段,只需要来自模型 3 的许多不同字段,例如obj.model2.model3.name和其他

如何在不一个接一个明确提及的情况下推迟 model2 中的所有字段?

编辑:模型 1 有外键到模型 2 有外键到模型 3

django django-queryset

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

将“abc”转为“[97, 98 99]”

如何将字符串更改为列表字符串(如问题标题中所示)

我可以简单地做类似的事情,但我有一个更简单的方法

orig = "bla bla"
final = "["
for i in orig:
    final = "%s %d," % (final, i)
final = final[:-1] + "]"
Run Code Online (Sandbox Code Playgroud)

python

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

滥用 c++11 unique_ptr 在离开作用域时执行代码

我想使用std::unique_ptr的删除器来保证一些代码会在离开作用域时执行。例如,假设我有一个Event带有 function的类set_event()

我想确保在离开范围时,my_event.set_event()将调用该函数。我设法得到了类似的东西:

Event my_event;
auto releasing_function = [&my_event] (void*){my_event.set_event();};
std::unique_ptr<void, decltype(releasing_function)> safe_event((void*)1, releasing_function);
Run Code Online (Sandbox Code Playgroud)

但我觉得我们可以做得更好。也许是一个没有这个自动 lambda 函数的单行,或者避免这个丑陋的(void*)1. 甚至可能完全删除unique_ptr

编辑:我想避免实用程序类。这太容易了:)

c++ unique-ptr c++11

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

如何区分16位MZ和32位MZ

我需要将32位PE与16位DOS MZ区分开来.这样做的正确方法是什么?我可以像寻找PE头一样使用启发式算法,但我觉得它不一定是确定性的

c windows 32-bit portable-executable

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

将字典导出为JSON(按键排序)

我有一本字典

Dictionary<string, object>
Run Code Online (Sandbox Code Playgroud)

(值可以是字符串,整数或双精度型)。我将字典导出到JSON文件:

JsonConvert.SerializeObject(myDict);
Run Code Online (Sandbox Code Playgroud)

我希望保存的JSON按键排序。

.net c# json dictionary

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

Python 类型 - 返回值是参数的实例

我有一个函数,它接收一个类并返回该类的一个实例。一个简单的例子:

def instantiate(class_: Type[enum.Enum], param: str) -> enum.Enum:
    return class_(param)
Run Code Online (Sandbox Code Playgroud)

返回值与参数的类型相同class_,因此如果 class_ 是MyEnum,则返回值将是类型MyEnum

有什么方法可以声明吗?

python type-hinting python-3.x python-typing

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

Django - 更改页面不存在或用户未通过身份验证时返回的答案

我在生产中使用 Django。

我看到如果未经身份验证的用户访问公开的 API - 服务器将返回 HTTP 401 Unauthorized。

如果用户将访问不存在的API(有或没有身份验证) - 服务器将返回 404 Not found。

在我看来,这像是一种糟糕的安全做法,并允许攻击者找到服务器公开的 API。

有没有办法改变它,这样两者都会返回完全相同的结果(我认为 401 是最佳实践,不是吗?)

security django

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

numpy创建所有坐标的数组

我想创建一个包含所有可能(x,y)值的列表.

例如 - 对于输入(x = 2,y = 3),输出应为:

np.array([
[0,0],
[0,1],
[0,2],
[1,0],
[1,1],
[1,2]])
Run Code Online (Sandbox Code Playgroud)

订单并不重要

python arrays numpy

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