Python ';用户';对象没有属性'__获取项目';关于创建对象

Python ';用户';对象没有属性'__获取项目';关于创建对象,python,django,Python,Django,试图使用create对象使用外键将数据插入python模型,而获取“User”对象没有属性“getitem” models.py 从未来导入unicode文本 从django.db导入模型 from..loginRegistration\u app.models导入用户 class PostManager(models.Manager): error_list = [] def post_in(self, postData, user_id): if len(po

试图使用create对象使用外键将数据插入python模型,而获取“User”对象没有属性“getitem

models.py

从未来导入unicode文本 从django.db导入模型 from..loginRegistration\u app.models导入用户

class PostManager(models.Manager):
    error_list = []
    def post_in(self, postData, user_id):
        if len(postData['post']) < 1:
            context = {'status':0}
            return context
        else:
            curr_user = User.objects.get(id = user_id)
            # print curr_user.last_name
            self.create(secrets = postData['post'], users_id = curr_user['id'])

class Like(models.Model):
    like = models.BooleanField()
    users = models.ForeignKey(User, related_name = 'user_likes')
    created_at = models.DateTimeField(auto_now_add = True)
    upated_at = models.DateTimeField(auto_now = True)

class Secret(models.Model):
    secret = models.TextField(max_length = 1000)
    likes = models.ForeignKey(Like, related_name = 'all_likes')
    users = models.ForeignKey(User, related_name = 'user_secrets')
    created_at = models.DateTimeField(auto_now_add = True)
    upated_at = models.DateTimeField(auto_now = True)

    objects = PostManager()
错误:

TypeError at /secrets/post_it
'User' object has no attribute '__getitem__'

self.create(secrets = postData['post'], users_id = curr_user['id']) 

id
是用户实例的属性,而不是一些
dict
键:

def post_in(self, postData, user_id):
    # ...
    curr_user = User.objects.get(id = user_id)
    self.create(..., users_id = curr_user.id)  # id is an attribute
但是既然
user\u id
是视图的一个属性,为什么不使用它呢

    self.create(..., users_id = user_id) 
顺便说一句,您的
ForeignKey
字段实际上应该有单数名称(
'like',user'
),复数名称在语义上没有意义

    self.create(..., users_id = user_id)