__init __()获得了意外的关键字参数

HVT7

我正在尝试构建Web服务,但是我坚持使用我的模型。我做了一个“用户”模型,它有一个ListField()作为照片,“照片”是一个嵌入式文档。但是在保存此用户对象时,我得到一个错误:

Traceback (most recent call last):
File "E:\Challenge\trial\services\workspace\Service\src\appservices\trial.py", 
  line 7, in <module>
  likedBy=["Name1", "Name2", "Name3", "Name4"]))
File "E:\Challenge\trial\Python27\lib\site-packages\djangotoolbox\fields.py", 
    line 253, in __init__
    super(EmbeddedModelField, self).__init__(*args, **kwargs)
    TypeError: __init__() got an unexpected keyword argument 'likedBy'

下面是我的模型文件:

from django.db import models
from djangotoolbox.fields import ListField, EmbeddedModelField

class User(models.Model):
    username = models.CharField(max_length=100, blank=False, unique = True)
    fname = models.CharField(max_length=100, blank=False)
    lname = models.CharField(max_length=100, blank=True)
    photos = ListField()        #embedded list of photos uploaded by users
    created = models.DateTimeField(auto_now_add=True)    

    def __unicode__(self):
        return self.name

class Photo(EmbeddedModelField):
    description = models.TextField()
    link = models.TextField()
    like = models.IntegerField
    likedBy = ListField()

    def __unicode__(self):
        return self.name

我尝试保存User对象的方式是:

user = User(username="username", fname="Harshal", lname="Tripathi")
user.photos.append(Photo(description="This is a great photo uploaded for trial", link="http://image.com/images/user_photo.jpg", like="365", likedBy=["Name1", "Name2", "Name3", "Name4"]))
user.save()
杰比

在我看来,这无非是一个普通的Python问题。您已经从EmbeddedModelField继承了子类,但是尚未覆盖子类中init方法。结果,当实例化提供特定于您的子类的参数的类时,这些参数将直接馈送到基类的init,然后该init被炸掉。

Django文档一目了然,您将要覆盖init并处理特定于类的args / kwargs,并将所有通用/通用参数传递给基类(以下示例下面的文档摘录)。

我不是Django开发人员,也没有时间安装和设置它,但是根据您上面提供的代码,我希望以下内容能正常工作,除非Django固有的某些我不愿意或不愿意做的事情文档一目了然。

from django.db import models
from djangotoolbox.fields import ListField, EmbeddedModelField

class User(models.Model):
    username = models.CharField(max_length=100, blank=False, unique = True)
    fname = models.CharField(max_length=100, blank=False)
    lname = models.CharField(max_length=100, blank=True)
    photos = ListField()        #embedded list of photos uploaded by users
    created = models.DateTimeField(auto_now_add=True)    

    def __unicode__(self):
        return self.name

class Photo(EmbeddedModelField):
    description = models.TextField()
    link = models.TextField()
    like = models.IntegerField
    likedBy = ListField()

    def __init__(self, link=None, like=None, likedBy=None, *args, **kwargs):
        super(Photo, self).__init__(*args, **kwargs)
        self.link = link or self.link
        self.like = like or self.like
        self.likedBy = likedBy or self.likedBy

    def __unicode__(self):
        return self.name

编写一个字段子类

在规划Field子类时,首先要考虑一下新字段与哪个现有Field类最相似。您可以继承现有的Django字段并为自己节省一些工作吗?如果不是,则应该对Field类进行子类化,从该类继承所有子类。

初始化新字段是要从通用参数中分离出特定于您案例的所有参数,然后将通用参数传递给Field(或您的父类)的__init __()方法。

在我们的示例中,我们将其称为字段HandField。(将Field子类称为Field是一个好主意,因此很容易将其标识为Field子类。)它的行为不像任何现有字段,因此我们直接从Field进行子类化:

from django.db import models

class HandField(models.Field):

    description = "A hand of cards (bridge style)"

    def __init__(self, *args, **kwargs):
        kwargs['max_length'] = 104
        super(HandField, self).__init__(*args, **kwargs)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

__init __()获得了意外的关键字参数'mimetype'

来自分类Dev

__init __()获得了意外的关键字参数'required'

来自分类Dev

__init __()获得了意外的关键字参数'_job'

来自分类Dev

__init __()获得了意外的关键字参数“ y”

来自分类Dev

__init __()获得了意外的关键字参数“健康”

来自分类Dev

__init __()获得了意外的关键字参数'pk'

来自分类Dev

__init __()获得了意外的关键字参数'required'

来自分类Dev

__init __()获得了意外的关键字参数

来自分类Dev

__init __()获得了意外的关键字参数“ y”

来自分类Dev

TypeError:__init __()获得了意外的关键字参数'shuffle'

来自分类Dev

Python 3.5:TypeError:__init __()获得了意外的关键字参数'nosigint'

来自分类Dev

__init __()在python子进程中获得了意外的关键字参数'timeout'

来自分类Dev

Django:__init __()获得了意外的关键字参数'instance'

来自分类Dev

Django rest framework / simplejson错误__init __()获得了意外的关键字参数

来自分类Dev

表单错误-__init __()获得了意外的关键字参数'prefix'

来自分类Dev

Haystack Faceted:__init __()获得了意外的关键字参数'facet_fields'

来自分类Dev

TypeError:__init __()获得了意外的关键字参数“ choices”

来自分类Dev

获取以下TypeError:__init __()获得了意外的关键字参数'iam_apikey'

来自分类Dev

TypeError:__init __()获得了意外的关键字参数'show_preview'

来自分类Dev

TypeError:__init __()获得了意外的关键字参数'validators'

来自分类Dev

需要帮忙 !!!!TypeError:__init __()获得了意外的关键字参数'num_workers'

来自分类Dev

TypeError:__init __()使用SMOTE时获得了意外的关键字参数'ratio'

来自分类Dev

Django表单密码TypeError:__init __()获得了意外的关键字参数'widget'

来自分类Dev

__init __()在Django中获得了意外的关键字参数'user_id'

来自分类Dev

TypeError:__init __()获得了意外的关键字参数'requote'

来自分类Dev

TypeError:__init __()获得了意外的关键字参数'task_id'

来自分类Dev

__init __()在Python 2中使用argparse获得了意外的关键字参数'required'

来自分类Dev

TypeError:__init __()获得了意外的关键字参数'restrict_xpath'

来自分类Dev

__init __()获得了意外的关键字参数'stop_words'

Related 相关文章

  1. 1

    __init __()获得了意外的关键字参数'mimetype'

  2. 2

    __init __()获得了意外的关键字参数'required'

  3. 3

    __init __()获得了意外的关键字参数'_job'

  4. 4

    __init __()获得了意外的关键字参数“ y”

  5. 5

    __init __()获得了意外的关键字参数“健康”

  6. 6

    __init __()获得了意外的关键字参数'pk'

  7. 7

    __init __()获得了意外的关键字参数'required'

  8. 8

    __init __()获得了意外的关键字参数

  9. 9

    __init __()获得了意外的关键字参数“ y”

  10. 10

    TypeError:__init __()获得了意外的关键字参数'shuffle'

  11. 11

    Python 3.5:TypeError:__init __()获得了意外的关键字参数'nosigint'

  12. 12

    __init __()在python子进程中获得了意外的关键字参数'timeout'

  13. 13

    Django:__init __()获得了意外的关键字参数'instance'

  14. 14

    Django rest framework / simplejson错误__init __()获得了意外的关键字参数

  15. 15

    表单错误-__init __()获得了意外的关键字参数'prefix'

  16. 16

    Haystack Faceted:__init __()获得了意外的关键字参数'facet_fields'

  17. 17

    TypeError:__init __()获得了意外的关键字参数“ choices”

  18. 18

    获取以下TypeError:__init __()获得了意外的关键字参数'iam_apikey'

  19. 19

    TypeError:__init __()获得了意外的关键字参数'show_preview'

  20. 20

    TypeError:__init __()获得了意外的关键字参数'validators'

  21. 21

    需要帮忙 !!!!TypeError:__init __()获得了意外的关键字参数'num_workers'

  22. 22

    TypeError:__init __()使用SMOTE时获得了意外的关键字参数'ratio'

  23. 23

    Django表单密码TypeError:__init __()获得了意外的关键字参数'widget'

  24. 24

    __init __()在Django中获得了意外的关键字参数'user_id'

  25. 25

    TypeError:__init __()获得了意外的关键字参数'requote'

  26. 26

    TypeError:__init __()获得了意外的关键字参数'task_id'

  27. 27

    __init __()在Python 2中使用argparse获得了意外的关键字参数'required'

  28. 28

    TypeError:__init __()获得了意外的关键字参数'restrict_xpath'

  29. 29

    __init __()获得了意外的关键字参数'stop_words'

热门标签

归档