Django 2.1.3 错误:__init__() 需要 1 个位置参数,但给出了 2 个

pythonDjango

1个回答

写回答

柠檬不甜

2025-07-08 00:30

+ 关注

Django
Django

使用Django开发网站时,我们可能会遇到各种错误。其中一个常见的错误是在初始化函数中给出了多余的参数。在Django 2.1.3版本中,当我们创建一个实例时,如果初始化函数要求一个位置参数,但我们给出了多个参数,那么就会出现"__init__()需要1个位置参数,但给出了2个"错误。

这个错误通常发生在我们自定义的类中,当我们在类的初始化函数中定义了一个位置参数,但在实例化时给出了多个参数。让我们通过一个简单的案例来说明这个错误。

假设我们正在开发一个博客应用程序,并创建了一个名为"Post"的模型类来表示博客文章。我们希望在创建新文章时,为文章指定一个标题。以下是我们的代码:

Python

from Django.db import models

class Post(models.Model):

title = models.CharField(max_length=100)

def __init__(self, title):

self.title = title

在这个例子中,我们在"Post"类的初始化函数中定义了一个位置参数"title"。然而,当我们尝试实例化一个"Post"对象时,却给出了多个参数,导致了错误的发生。让我们看看下面的代码:

Python

new_post = Post("My First Post", "Hello World!")

在上面的代码中,我们试图为"Post"对象创建一个新的实例,并传递了两个参数:"My First Post"和"Hello World!"。然而,由于初始化函数只接受一个位置参数,所以就会出现错误。

要解决这个问题,我们需要确保在实例化"Post"对象时只传递一个参数,即标题。以下是修复这个错误的代码:

Python

new_post = Post("My First Post")

在上面的代码中,我们只传递了一个参数:"My First Post",这样就不会再出现"__init__()需要1个位置参数,但给出了2个"错误了。

解决"__init__()需要1个位置参数,但给出了2个"错误

以上是我们对这个错误的解释和案例代码。当我们在Django开发中遇到这个错误时,我们只需要检查实例化对象时传递的参数是否与初始化函数中定义的参数一致。确保只传递一个参数,以解决这个错误。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号