当前位置: 首页 > 知识库问答 >
问题:

ListCreateAPIView对象没有属性_default_manager

於子晋
2023-03-14

我有这些序列化程序:

# Tickets
class TicketSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ticket
        depth = 2

class TicketWriteSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ticket

而这个观点:

class Tickets(generics.ListCreateAPIView):
  model = Ticket
  serializer_class = TicketSerializer

  def create(self, request, *args, **kwargs):
    serializer = TicketWriteSerializer(data=request.DATA, files=request.FILES)
    if serializer.is_valid():
      self.pre_save(serializer.object)
      self.object = serializer.save(force_insert=True)
      self.post_save(self.object, created=True)
      headers = self.get_success_headers(serializer.data)
      serializer = TicketSerializer(serializer.object)
      return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

在我的URL文件中,我添加了如下内容:

  url(r'^tickets/', Tickets.as_view(model=Tickets), name='tickets')

对于此型号:

class Ticket(models.Model):
    customer = models.ForeignKey('Customer', null=True, blank=True)
    act = models.ForeignKey('Act')
    row = models.PositiveIntegerField()
    seat = models.PositiveIntegerField()
    # Price for a seat can go up to 9999.99
    price = models.DecimalField(max_digits=6, decimal_places=2)
    status = models.CharField(max_length=255)   

现在每当我打电话给 /tickets/我得到:

AttributeError at /tickets/

type object 'Tickets' has no attribute '_default_manager'

我想知道这是怎么回事。我想要的是两个序列化程序,这样我就可以像ForeignKeys一样“平坦”地发送数据,但检索深度为2的所有数据。

编辑:回溯

环境:

请求方法:获取请求URL:http://localhost:8000/tickets/

Django版本:1.7.1 Python版本:3.4.2已安装的应用程序:(django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,服务器'、'rest_framework'、'rest_framework.authtoken')已安装的中间件:('django.contrib.sessions.middleware.SessionMiddleware'、'django.middleware.common.公共中间件'、'django.contrib.auth.middleware.身份验证中间件'、'django.contrib.messages.middleware.MessageMiddleware'、'django.middleware.clickjacking.XFrameOptionsMiddleware')

Traceback:get_response111中的File"/usr/lib/python3.4/site-pack/django/core/handler/base.py",响应=wrapped_callback(请求,*callback_args,**callback_kwargs)File"/usr/lib/python3.4/site-包/django/view/装饰者/csrf.py",wrapped_view(*args,**kwargs)File"/usr/lib/python3.4/site-pack/django/view/通用/base.py"in view 69.返回self.dispatch(请求,*args,**kwargs)File"/usr/lib/python3.4/site-pack/rest_framework/views.py"in调度403响应=self.handle_exception(exc)文件"/usr/lib/python3.4/site-包/rest_framework/views.py"在调度400响应=处理程序(请求,*args,**kwargs)文件"/usr/lib/python3.4/site-包/rest_framework/generics.py"在get 493中。返回self.list(请求,*args,**kwargs)File"/usr/lib/python3.4/site-包/rest_framework/mixins.py"在列表76中。self.object=self.filter_queryset(self.get_queryset())文件"/usr/lib/python3.4/site-包/rest_framework/generics.py"在get_queryset296.

异常类型:属性错误在 /tickets/异常值:类型对象'门票'没有属性'_default_manager'

共有1个答案

庄兴发
2023-03-14

您设置了model=Tickets,但Tickets是您的视图,而不是您的模型

url(r'^tickets/', Tickets.as_view(model=Tickets), name='tickets')

用这个代替

url(r'^tickets/', Tickets.as_view(model=Ticket), name='tickets')
 类似资料:
  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我正在开发Django应用程序,并且出现以下错误 我的模型是这样构造的 我应该做什么? 问题答案: 首先,您必须非常小心地重写以具有非可选参数。记住,每次从一个查询集中获取一个对象时,它将被调用! 这是您想要的正确代码: 如果您只使用该对象的子类,我强烈建议在Animal上设置abstract选项。这样可以确保不为动物创建表,而仅为绵羊(等)创建表。如果未设置abstract,则将创建

  • 我创建了这个简单的GUI: 我让用户界面启动并运行。当我点击按钮时,我在控制台上得到以下错误: 为什么设置为?

  • 问题内容: 我将Selenium webdriver(chrome)与Python结合使用,试图从网页上的所有链接中获取 href 。当我尝试以下操作时: 它设法获取所有链接,但是在get_attribute上出现错误: “ WebElement”对象没有属性“ Get_Attribute” 尽管到处都看起来很正常。 问题答案: “ Get_Attribute”属性不存在,但是“ get_attr

  • 问题内容: 我创建了这个简单的GUI: 我启动并运行了UI。当我单击Grab按钮时,在控制台上出现以下错误: 为什么entryBox设置为None? 问题答案: 并且place在功能Entry对象和所有其他部件的回报None。在python中,执行此操作时.,表达式的结果为返回的值,因此。 你应该将其分成两行,如下所示: 这样,你就可以将参考存储在其中,并且可以按照你的期望进行布局。如果你以块的形

  • 问题内容: 它显示了运行时错误: 我只是python的初学者,即使在网上搜索后也无法纠正此问题。 问题答案: 错误: 表示您正在尝试将索引运算符应用于int而不是列表。所以即使在应该的时候也没有清单吗?让我们从那开始。 看这里: 在内部使用其他变量名称,看起来列表理解会在迭代过程中覆盖该变量。(不是在设置时 进行 迭代,而是在以下过程中进行。)