Python “非类型”对象没有属性(外键)csv?

Python “非类型”对象没有属性(外键)csv?,python,django,csv,Python,Django,Csv,当所有设置外键sku_id时,如果外键为空,则工作正常,显示错误 对象没有属性 如何在CSV列中打印“无”而不是错误 def seller_report(request): loginned_user = request.user if request.method=="POST": from_date = request.POST.get('from_date') to_date = request.POST.get('to_date')

当所有设置外键sku_id时,如果外键为空,则工作正常,显示错误 对象没有属性

如何在CSV列中打印“无”而不是错误

def seller_report(request):
    loginned_user = request.user
    if request.method=="POST":
        from_date = request.POST.get('from_date')
        to_date = request.POST.get('to_date')
        new_from = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()
        new_to = datetime.datetime.strptime(to_date, '%Y-%m-%d').date()
        min_dt = datetime.datetime.combine(new_from, datetime.time.min)
        max_dt = datetime.datetime.combine(new_to, datetime.time.max)
        space = ' '
        to = 'to'
        download_name = space + from_date + space + to + space + to_date

        daily_en = All_enquiries.objects.filter(enquired_at__range = (min_dt, max_dt))

        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] =  'attachment; filename="Report{}.csv"'.format(download_name)

        writer =  csv.writer(response, delimiter=',')
        writer.writerow(['created_at','product_name','product_category','price','seller_name','seller_mobile','seller state','seller city','seller pincode', 'seller type','customer_name','customer_mobile','state','district','city','pincode','status','remarks','source','username'])

        for obj in daily_en:
            if obj.sku_id is None:
               obj.sku_id is 'None'

            writer.writerow([obj.enquired_at,obj.product_name,obj.product_category,obj.price,obj.sku_id.seller_id.seller_name, obj.sku_id.seller_id.mobile_number,obj.sku_id.seller_id.state,obj.sku_id.seller_id.city,obj.sku_id.seller_id.pincode,obj.sku_id.seller_id.get_seller_type_display(), obj.customer_name,obj.customer_mobile,obj.state,obj.district,obj.city,obj.pincode,obj.status,obj.remarks,obj.get_source_display(),obj.user_id])

        return response

    return render (request,'enquiries/admin/report.html')
您应该能够使用values_list来选择数据库中的所有值,而对于无法遍历的关系,则不会获得任何值

    for row in daily_en.values_list(
        'enquired_at',
        'product_name',
        'product_category',
        'price',
        'sku_id__seller_id__seller_name',
        'sku_id__seller_id__mobile_number',
        'sku_id__seller_id__state',
        'sku_id__seller_id__city',
        'sku_id__seller_id__pincode',
        'sku_id__seller_id__seller_type',
        'customer_name',
        'customer_mobile',
        'state',
        'district',
        'city',
        'pincode',
        'status',
        'remarks',
        'source',
        'user_id'
    ):
        writer.writerow(row)

你能分享回溯和你的模型吗?您有obj.sku\u id.seller\u id.seller\u name之类的内容-您的外键定义为sku还是sku\u id?sku\u id=models.ForeignKeyProducts,on\u delete=models.SET\u NULL,NULL=True,blank=true如果obj.sku\u id在代码中的其他“None”应该起作用,请用附加信息obj.sku\u id.seller\u id.seller\u name编辑问题。通常外键没有在名称后面附加“\u id”。Django将在名为“\u id”的类上创建一个列和一个属性。在您的情况下,您将有一个列和一个名为“sku\u id\u id”的属性,它工作正常,但我希望sku\u id为null,如果“sku\u id\u seller\u id\u seller\u name”为none,则应在字符串中打印“none”