django-simple-serializer icon indicating copy to clipboard operation
django-simple-serializer copied to clipboard

AttributeError,AutoField' object has no attribute 'rel'

Open pytomtoto opened this issue 6 years ago • 3 comments

class site_menu(models.Model):

parent_id = models.IntegerField(default='')
name = models.CharField(max_length=50)
label = models.CharField(max_length=50)
url = models.TextField(default='#')
status = models.IntegerField(default=1)
class Meta:
    db_table = 'site_menu'

def ModuleManageFindData(request):

page = request.GET['page']
limit = request.GET['limit']
model_list = site_menu.objects.all()
paginator = Paginator(model_list,limit)
returnData = paginator.page(page).object_list
data = {"code":"","msg":"","count":"","data":[]}
data['code'] = 0
data['msg'] = ""
data['count'] = paginator.count
# for item in returnData:
#     data['data'].append({
#         "id": item.id,
#         "parent_id": item.parent_id,
#         "name": item.name,
#         "label": item.label,
#         "url":item.url,
#         "status": item.status
#     })
data['data'] = serializer(returnData)
# data['data'] = serializer(model_list)
print(data)
return HttpResponse(json.dumps(data), content_type="application/json")

Traceback (most recent call last):

File "C:\python36\lib\site-packages\django\core\handlers\exception.py", line 35, in inner response = get_response(request) File "C:\python36\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response response = self.process_exception_by_middleware(e, request) File "C:\python36\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "E:\lining\python\djangoTest\restDemo\views.py", line 37, in ModuleManageFindData data['data'] = serializer(model_list) File "C:\python36\lib\site-packages\django_simple_serializer-2.0.7-py3.6.egg\dss\Serializer.py", line 147, in serializer return s() File "C:\python36\lib\site-packages\django_simple_serializer-2.0.7-py3.6.egg\dss\Serializer.py", line 139, in call self.data_format() File "C:\python36\lib\site-packages\django_simple_serializer-2.0.7-py3.6.egg\dss\Serializer.py", line 130, in data_format self.objects = self.data_inspect(self.origin_data) File "C:\python36\lib\site-packages\django_simple_serializer-2.0.7-py3.6.egg\dss\Serializer.py", line 71, in data_inspect convert_data.append(self.data_inspect(obj)) File "C:\python36\lib\site-packages\django_simple_serializer-2.0.7-py3.6.egg\dss\Serializer.py", line 77, in data_inspect if field.rel is None: AttributeError: 'AutoField' object has no attribute 'rel'

ENV django2.0.2 python3.6 dss2.0.7

pytomtoto avatar Mar 02 '18 04:03 pytomtoto

同样遇到这个问题。

Deali-Axy avatar Jun 08 '18 12:06 Deali-Axy

期待作者解决下这个问题,在django1.9及之后版本,autoField字段类型使用remote_field而不是ref,需要做一下兼容。

hengdai avatar Nov 12 '18 02:11 hengdai

期待作者解决下这个问题,在django1.9及之后版本,autoField字段类型使用remote_field而不是ref,需要做一下兼容。

在我的fork版本中已经修复了这个问题 https://github.com/Deali-Axy/django-simple-serializer

Deali-Axy avatar Nov 12 '18 08:11 Deali-Axy