【发布时间】:2018-04-21 08:27:40
【问题描述】:
我正在创建一个简单的博客应用程序,我正在尝试转换 django rest api。但是,我收到了这个错误
TypeError at /user/api/hasattr(): 属性名必须是字符串
异常类型:/user/api/ 处的 TypeError
异常值:hasattr():属性名必须是字符串
这是我的 models.py 文件
from django.conf import settings
from django.db import models
from django.urls import reverse
class BlogPost(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)
blog_title=models.CharField(max_length=200)
blog_description=models.TextField()
blog_pub=models.DateTimeField(auto_now_add=True)
blog_update=models.DateTimeField(auto_now=True)
def __str__(self):
return self.blog_title
def get_absolute_url(self):
return reverse('blog:blog_post', kwargs={'pk': self.pk})
这是我的 serializers.py 文件
from rest_framework import serializers
from blog.models import BlogPost
class BlogPostSerializer(serializers.ModelSerializer):
class Meta:
fields=(
'author',
'blog_title',
'blog_description',
),
model=BlogPost
这是 views.py 文件
from blog.models import BlogPost
from .serializers import BlogPostSerializer
from rest_framework import generics
from . import serializers
from . import serializers
class BlogPostListAPI(generics.ListCreateAPIView):
queryset=BlogPost.objects.all()
serializer_class=BlogPostSerializer
class BlogPostListAPIDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = BlogPost.objects.all()
serializer_class = serializers.BlogPostSerializer
这是 urls.py 文件
from django.urls import path,include
from .views import SignUpForm, UserProfiles
from .api.views import *
urlpatterns = [
path('signup/', SignUpForm.as_view(), name='signup'),
path('profile/', UserProfiles.as_view(), name='profile'),
path('api/', BlogPostListAPI.as_view(), name='asad'),
path('api/<int:pk>', BlogPostListAPIDetail.as_view()),
]
【问题讨论】:
-
看不到
hasttr的使用位置 -
所有代码共享。但我不知道我怎么能得到这个错误。另外,我没有使用 hasttr。
-
单击
switch to copy and paste view并将该错误粘贴到更新的错误中。应该可能会列出它崩溃的地方。 -
删除
BlogPostSerializer中模型前的逗号',' -
你是对的,MaNKuR
标签: python django python-3.x django-models django-rest-framework