小编Lut*_*elt的帖子

什么是猴子补丁?

我想了解什么是猴子补丁或猴子补丁?

这类似于方法/运算符重载或委托吗?

这些东西有什么共同之处吗?

python monkeypatching terminology

496
推荐指数
8
解决办法
17万
查看次数

如何删除Django模型中的记录?

我想删除一个特定的记录.如

delete from table_name where id = 1;
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做django model呢?

python django django-models

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

Django模型ForeignKey on_delete属性:完整意义?

这里有一些型号:

class UserProfile(models.Model):  
    name = models.CharField(max_length=30)
    email = models.EmailField(unique=True, db_index=True) 
    birthday = models.DateField()

class Photo(models.Model):
    user = models.ForeignKey(UserProfile)
    description = models.TextField(blank=True)
    photo = models.ImageField(upload_to='img/photo')
Run Code Online (Sandbox Code Playgroud)

假设用户有10张照片(10个Photo模型对象).当用户删除自己时,所有这10个Photo数据库行会自动删除吗?(我读过文档,但英语不是我的母语,所以我对该on_delete属性一无所知.)

django django-models

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

如何从父克隆的过去提交中获取git子模块的关联提交ID?

有没有办法,实际上没有检查父提交,根据父克隆中的提交ID确定子模块的SHA-1提交ID?我知道我可以通过'git submodule'找到当前关联的SHA-1.

这是一个例子:我有一个带有单个子模块'foo'的克隆,它在上个月已经改变了好几次.我在父克隆中有一个标签,这个标签是几个星期,叫做'release-1.2.3'.我想知道'foo'的关联SHA-1对于这个标记的提交是什么.我可以简单地检查'release-1.2.3'并使用git-submodule来查看,但我想知道是否有办法在不影响工作树的情况下执行此操作,因为我想编写脚本.

我想这样做是因为我想构建一个脚本来对父存储库中两个提交之间的子模块中的所有更改执行'diff' - 即"告诉我在这两个提交之间的子模块'foo'中更改了哪些文件'父母."

git diff git-submodules

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

如何在Django中使用动态外键?

我想连接一个ForeignKey到两个不同的模型.

例如:

我有一个名为两款车型Casts,并Articles和第三个模型,Faves为加入最爱无论是其他车型.我该如何制作ForeignKey动态?

class Articles(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()

class Casts(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()

class Faves(models.Model):
    post = models.ForeignKey(**---CASTS-OR-ARTICLES---**)
    user = models.ForeignKey(User,unique=True)
Run Code Online (Sandbox Code Playgroud)

这可能吗?

python django foreign-keys

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

Python类型提示:如何判断X是Foo的子类?

我应该如何在Python中为类类型编写类型提示?考虑以下代码:

class A(object):
    pass

class B(A):
    pass

def register(cls: type[A]):
    assert issubclass(cls, A)

 register(A)
 register(B)
Run Code Online (Sandbox Code Playgroud)

type[A]写这个是正确的方法吗?如果我只是使用cls: A它将意味着cls是一个实例A,但我想说的cls是一个类/类型,至少是子类A.

具体来说,我想指出的是参数应该是Django模型类型.

python django-models type-hinting python-3.x

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

Django模型和ModelForms中的空白,空和必需

到目前为止,我还没有在Django的模型和表单中找到关于blank,null和required的明确解释.


我知道每个的默认值如下:

blank = False
null = False
required = True
Run Code Online (Sandbox Code Playgroud)

我也知道:

blank=True (在models.py中使用),表示在表单级别,接受空表单 - 表单中不需要关联字段.

null=True (在models.py中使用),表示在数据库级别,空字符串将被存储为None与关联数据类型的空版本相对.

NULL (在forms.py中使用)表示不需要关联的表单字段.


希望上述信息能很好地服务于其他人(如果逻辑中存在任何缺陷,请告诉我,我会更新它).

我的问题如下:

我什么时候知道什么时候使用required=Falseblank=True.如果我的目标是不需要表单字段,我可以使用模型在模型中required=False定义,或者我可以在表单中使用定义它blank=True.这是否意味着您可以required=False在模型中定义,并在相关的blank=True覆盖中使用ModelForm

还有关系,当你使用常规表格(required=True)时呢?由于表单与模型没有关联(除了通过视图逻辑),如果再次发生,它们会相互矛盾?

django django-models django-forms

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

更改python对象的类(强制转换)

在这个python doc页面上,它说:

与其身份一样,对象的类型也是不可更改的.

我试试这个剧本,

#!python3  

class Foo:
  num = 1
  pass

class Bar:
  num = 2
  pass

f1,f2= Foo(), Foo()

f2.__class__ = Bar
print( type(f1), type(f2), f1.num, f2.num )
Run Code Online (Sandbox Code Playgroud)

结果显示:

<class '__main__.Foo'> <class '__main__.Bar'> 1 2

我觉得我改变了typef2.
怎么了,我错过了什么?

python python-3.x

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

Django on_delete = models.CASCADE在SQL级别没有任何影响

我的models.py文件包含:

class User(models.Model):
    email = models.CharField(max_length=100, unique=True)
    password = models.CharField(max_length=100)
    create_time = models.DateTimeField(auto_now_add=True)

class Session(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    token = models.CharField(max_length=100, unique=True)
Run Code Online (Sandbox Code Playgroud)

当我命令python manage.py makemigrations然后命令python manage.py sqlmigrate <app_name> <migration_name>我没有看到任何说"ON DELETE = CASCADE"

但是,当我键入时,迁移工作没有失败python manage.py migrate.

现在,如果我转到mysql表(使用SequelPro)并尝试为当前有会话条目的用户删除一行,我会收到以下错误:" 未删除一行.重新加载表格以确保在此期间内容没有改变.检查控制台是否有可能在此表的主键内发生错误! ".

现在,当我转到会话表并删除该用户的会话,然后尝试从用户表中删除用户的行时,它会正确删除.这表明ON DELETE = CASCADE实际上并没有在MySQL级别工作.

我怎么能纠正它?

python mysql django cascade cascading-deletes

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

"pip安装加密"期间缺少pyconfig.h

我想设置scrapy集群按照这个链接scrapy-cluster,在运行这个命令之前一切正常:

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

requirements.txt看起来像:

cffi==1.2.1
characteristic==14.3.0
ConcurrentLogHandler>=0.9.1
cryptography==0.9.1
...
Run Code Online (Sandbox Code Playgroud)

我猜上面的命令意味着在requirements.txt中安装软件包.但是我不希望它指定版本,所以我将其更改为:

cat requirements.txt | while read line; do pip install ${line%%[>=]*} --user;done
Run Code Online (Sandbox Code Playgroud)

安装加密时,它给我错误:

build/temp.linux-x86_64-2.7/_openssl.c:12:24:fatal error:pyconfig.h:No such file or directory 
#include <pyconfig.h>
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题,我尝试了很多方法,但都失败了.我的系统是centos 7,python的版本是2.7.5(默认).此外,是否有任何其他scrapy框架适用于大量的网址.提前致谢

python cryptography centos pip scrapy

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