Python ';用户';对象没有属性'__获取项目';关于创建对象
试图使用create对象使用外键将数据插入python模型,而获取“User”对象没有属性“getitem” models.py 从未来导入unicode文本 从django.db导入模型 from..loginRegistration\u app.models导入用户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
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)