0
測試其期望得到所有用戶列表的GET請求時,我下面有點過時tutorialand我得到一個錯誤:「查詢集」對象有沒有屬性「追加」
'QuerySet' object has no attribute 'append'
下面是用戶配置模式。
class UserProfile(models.Model):
user = models.OneToOneField(User)
nickname = models.CharField(max_length = 128)
comment = models.TextField()
country = models.CharField(max_length = 128, blank = True)
url = models.CharField(max_length = 128, blank = True)
ignores = models.ManyToManyField(User, related_name = 'ignore_set', blank = True, null = True)
def serialize(self):
data = {
'user':self.user_id,
'username':self.user.username,
'nickname':self.nickname,
'comment':self.comment,
'country':self.country,
'url':self.url,
'ignores':[],
}
return data
下面
是view.py(請參閱API /用戶/列表)
def user_view(request, method):
# api/user/create: api that creating new account.
if method == 'create' and request.method == 'POST':
...
#api/user/update: api that update user's oldpassword with new one
elif method == 'update' and request.method == 'POST':
...
elif method == 'list':
users = UserProfile.objects.all()
return toJSON(serial(users))
else:
return toJSON({'status':'bad request'},400)
我想下面的功能序列化是問題的根源..但不知道如何解決它..
def serial(objs):
serialized = []
for obj in objs:
objs.append(obj.serialize())
return serialized
def toJSON(objs, status=200):
j = json.dumps(objs, ensure_ascii=False)
return HttpResponse(j, status=status, content_type='application/json; charset=utf-8')
注意:您可能希望找到一個更好的教程(Django的官員是相當不錯的),然後也許看看Django的REST框架 – Sayse
這確實是一個基本的錯誤..是的,我一定會採取django官方教程,非常感謝您的幫助。 –