【问题标题】:Django 'NoneType' object has no attribute 'file'Django 'NoneType' 对象没有属性 'file'
【发布时间】:2022-02-11 04:45:29
【问题描述】:

我的代码是这样实现的,当没有文件时如何引发异常

**models.py**

class Template(BaseModel):
    file = models.FileField(
        upload_to='',
        validators=[FileExtensionValidator(['xls', 'xlsx'])]
    )
    uploaded_by = models.ForeignKey(
        'Some Model',
        related_name='',
        null=True,
        on_delete=models.SET_NULL,
    )

views.py

@api_view(('GET',))
def i_view(request):
    data = Model.objects.first()
    response = HttpResponse(
        data.file,
        content_type='application/vnd.openxmlformats
    )
    return response

【问题讨论】:

  • 提供您的Model
  • @AnkitTiwari Bro 我添加了模型请看一下
  • Model.objects.first 返回None,因为您在Model 中没有任何记录。

标签: django django-models django-rest-framework django-views django-forms


【解决方案1】:

如果至少存在一个Model,您可以简单地添加条件检查。如果没有Model,请在else 添加您想要发生的任何事情。

def i_view(request):
    data = Model.objects.first()
    if data:
        response = HttpResponse(
            data.file,
            content_type='application/vnd.openxmlformats'
        )
        return response
    else:
        # here you can do coding if there is no Model object

【讨论】:

    猜你喜欢
    • 2021-08-03
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2014-10-24
    • 2016-04-23
    • 2016-10-21
    相关资源
    最近更新 更多