Django使用表中的'__init__'函数创建模型的新实例,实例数据是错误的?

冷冻王

我的型号代码有问题:

class Person(models.Model):
    name = models.CharField(max_length=20)
    url = models.URLField()
    card_id = models.CharField(max_length=20)

    def __init__(self, name, card_id, url, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.name = name
        self.card_id = card_id
        self.url = url

    def __str__(self):
        return str({
            'name': self.name,
            'card_id': self.card_id,
            'url': self.url
        })

有测试代码:

class PersonTestCase(TestCase):
    def setUp(self):
        Person.objects.create(name="test",
                          card_id="123",
                          url="http://www.baidu.com")

    def test_get(self):
        p = Person.objects.get(name="test")
        print(p)

测试函数“test_get”的打印结果是:

{'name': 1, 'card_id': 'test', 'url': '123'}

这是错误。

nameid列的数据,值card_idname列的数据,...

但如果我改变功能__init__遵循:

    def __init__(self, id=None, name=None, card_id=None, url=None, *args, **kwargs):

或者删除函数__init__,得到函数的打印结果test_get是:

{'name': 'test', 'card_id': '123', 'url': 'http://www.baidu.com'}

哪个是对的。

在某处,我Person(....)用来创建新实例,如果我删除__init__,就意味着我不能Person(...)用来创建新实例,我要更改我的代码吗?

那么从表数据创建新实例的最佳方法是什么?

丹尼尔罗斯曼

您根本不应该__init__在模型上定义基类 - 您通过调用它super- 已经从 kwargs 设置了属性。删除该方法。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Django 中使用不带“def __init__”的“self”实例

来自分类Dev

django - 类型错误 __init__ 位置参数

来自分类Dev

Django-在__init__中添加模型字段验证器

来自分类Dev

Django-在__init__中添加模型字段验证器

来自分类Dev

如何模拟在__init__中实例化的类属性?

来自分类Dev

如何在类的__init__方法中修补实例?

来自分类Dev

Python在__init__中为包和函数创建if elif

来自分类Dev

无法访问使用类 __init__ 函数创建的对象:

来自分类Dev

我在使用__init__构造函数错误吗?

来自分类Dev

__init__中的UnboundLocalError

来自分类Dev

Django ModelForms __init__ kwargs创建和更新

来自分类Dev

如何在类的__init__函数中使用函数

来自分类Dev

杀死在Python的__init__类中创建的子进程

来自分类Dev

杀死在Python的__init__类中创建的子进程

来自分类Dev

从Python中的构造函数__init__内省参数

来自分类Dev

Python:将参数冻结到类__init__函数中

来自分类Dev

Python中的类是否需要__init__构造函数?

来自分类Dev

__init__函数中处理多个args的优雅方法

来自分类Dev

Python中的类是否需要__init__构造函数?

来自分类Dev

如何在表单的 __init__ 函数中绑定字段

来自分类Dev

python中的函数__init__不起作用

来自分类Dev

Python:使用__init__引用任何创建的对象

来自分类Dev

如何使用Notepad ++在__init__函数的末尾添加“-> None:”?

来自分类Dev

如何使用Notepad ++在__init__函数的末尾添加“-> None:”?

来自分类Dev

如何在类的__init__函数中使用canvas参数?

来自分类Dev

在python的__init__中返回None的错误格式

来自分类Dev

__init__外的python中的libSBML分段错误

来自分类Dev

在piplines __init__ scrapy中为python传递抓取的数据

来自分类Dev

创建实例时默认调用__init__

Related 相关文章

  1. 1

    在 Django 中使用不带“def __init__”的“self”实例

  2. 2

    django - 类型错误 __init__ 位置参数

  3. 3

    Django-在__init__中添加模型字段验证器

  4. 4

    Django-在__init__中添加模型字段验证器

  5. 5

    如何模拟在__init__中实例化的类属性?

  6. 6

    如何在类的__init__方法中修补实例?

  7. 7

    Python在__init__中为包和函数创建if elif

  8. 8

    无法访问使用类 __init__ 函数创建的对象:

  9. 9

    我在使用__init__构造函数错误吗?

  10. 10

    __init__中的UnboundLocalError

  11. 11

    Django ModelForms __init__ kwargs创建和更新

  12. 12

    如何在类的__init__函数中使用函数

  13. 13

    杀死在Python的__init__类中创建的子进程

  14. 14

    杀死在Python的__init__类中创建的子进程

  15. 15

    从Python中的构造函数__init__内省参数

  16. 16

    Python:将参数冻结到类__init__函数中

  17. 17

    Python中的类是否需要__init__构造函数?

  18. 18

    __init__函数中处理多个args的优雅方法

  19. 19

    Python中的类是否需要__init__构造函数?

  20. 20

    如何在表单的 __init__ 函数中绑定字段

  21. 21

    python中的函数__init__不起作用

  22. 22

    Python:使用__init__引用任何创建的对象

  23. 23

    如何使用Notepad ++在__init__函数的末尾添加“-> None:”?

  24. 24

    如何使用Notepad ++在__init__函数的末尾添加“-> None:”?

  25. 25

    如何在类的__init__函数中使用canvas参数?

  26. 26

    在python的__init__中返回None的错误格式

  27. 27

    __init__外的python中的libSBML分段错误

  28. 28

    在piplines __init__ scrapy中为python传递抓取的数据

  29. 29

    创建实例时默认调用__init__

热门标签

归档