我们可以仅在不使用on_delete的情况下定义model.CASCADE吗?

月亮

据我所知,当我们在Django中定义外键时,我们可以设置为like on_delete=models.CASCADE

最近我看过类似的代码content_type = models.ForeignKey(ContentType,models.CASCADE)

我的问题是django是否允许在不使用on_delete的情况下定义model.CASCADE?或者,如果我们像上面那样定义,它的工作方式是否有所不同?

content_type = models.ForeignKey(
        ContentType,
        models.CASCADE,
        verbose_name=_('content type'),        
    )
迪彭·达达尼亚(Dipen Dadhaniya)

是的,我们可以做到。


为了清楚地理解它,请尝试理解以下代码:

def fn(x, y, z=0):
    print('x =', x, 'y =', y, 'z =', z)


fn(1, 2)           # Prints: x = 1 y = 2 z = 0
fn(1, 2, 3)        # Prints: x = 1 y = 2 z = 3
fn(1, y=2)         # Prints: x = 1 y = 2 z = 0
fn(1, y=2, z=3)    # Prints: x = 1 y = 2 z = 3
fn(x=1, y=2)       # Prints: x = 1 y = 2 z = 0
fn(x=1, y=2, z=3)  # Prints: x = 1 y = 2 z = 3
fn(y=2, z=3, x=1)  # Prints: x = 1 y = 2 z = 3

现在,看看ForeignKey源代码看起来像这样:

class ForeignKey(ForeignObject):
    ...
    def __init__(
        self, to, on_delete, 
        related_name=None, related_query_name=None,
        limit_choices_to=None, parent_link=False, 
        to_field=None, db_constraint=True, **kwargs,
    ):
        ...

所以,当我们写:

content_type = models.ForeignKey(
    ContentType,
    models.CASCADE,
    verbose_name=_('content type'),        
)

参数toContentType,参数on_deletemodels.CASCADE

这与写作完全相同:

content_type = models.ForeignKey(
    on=ContentType,
    on_delete=models.CASCADE,
    verbose_name=_('content type'),        
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在没有auto的情况下定义C ++ lambda函数吗?

我们可以在不使用Cloud Composer的情况下运行气流模板吗

我们可以在不使用 Firebase 的情况下向全球发送通知吗?

今天我们可以在不使用粘性会话的情况下通过websocket使用核心SignalR吗?

我们可以在不使用MatTableDataSource / <mat-table>的情况下在Angular中使用MatPaginator吗?

我可以在 where 语法下定义多个函数吗?

我们可以在不使用任何框架的情况下在css中给出if else条件吗

我们可以在不使用Jad文件的情况下在Blackberry中共享应用程序吗

我们可以在不使用 selenium/QTP 等的情况下进行网络自动化吗?

我们可以在不使用Java中的return的情况下为通过参数传递的对象分配值吗?

我们可以在不使用 Azure Active Directory 的情况下在 Azure 中配置 SSO(单点登录)吗?

我们可以在不使用fopen的情况下用C打开二进制文件吗?

我们可以在不使用GCM / FCM的情况下以chrome形式进行网络推送通知吗?

我们可以在 Django 中不定义 STATICFILES_DIRS 的情况下使用静态文件吗

EF代码优先:我可以在不更改数据库的情况下执行Delete Cascade吗?

我们可以在不使用Excel插入对象之类的任何Google Form的情况下在Google Spreadsheet中插入文本框/按钮吗?

我们可以在不使用Facebook功能登录的情况下获取电子邮件ID的Facebook朋友列表吗

我们可以在不使用Datepicker的情况下将材质UI选择器中的日历组件用作独立组件吗?

我们可以在不使用 ruamel.yaml 的情况下将旧 YAML 的内容复制到新 YAML 吗

我们可以在没有雄辩的ORM的情况下使用Laravel表单绑定吗?

我们可以在不迁移到AndroidX的情况下使用Android Slice吗?

我们可以在没有OAuth的情况下使用Google youtube数据API吗?

我们可以在不调整大小的情况下对图像使用缩放比例吗?

我们可以在不部署的情况下使用多维数据集吗?

我们可以在没有MAAS的情况下使用Juju吗?

我可以在“ coqtop-nois”下定义一种策略吗?

在没有定义主键的情况下,我们可以建造Data Vault 2卫星吗?

我可以在不使用“ this”的情况下重写Javascript吗?

在这种特定情况下,我们可以使用android数据绑定替换findViewById()吗?