我有Python / Django项目设置,我有以下名为adwords_utils.py
的辅助模块,其结构如下:
from django.conf import settings
from googleads import adwords
import csv
import currency_helper
import logging
import sys
import StringIO
def GetDataFromCsv(path, exchangeRates, managedAccount):
def GetPerformanceReport(cid, reportType, reportFields, dateRangeType, minDate, maxDate):
def GetAmountFromMicros(micros):
def GetManagedAccounts(managerId):
然后以下列方式在我的views.py中使用它:
from django.shortcuts import render_to_response
from django.http import HttpResponse
from django.conf import settings
import adwords_utils
def account_hierarchy(request):
manager_ids = settings.MANAGER_IDS
managed_accounts = []
for manager_id in manager_ids:
managed_accounts.extend(adwords_utils.GetManagedAccounts(manager_id))
if len(managed_accounts) > 0:
for managed_account in managed_accounts:
client_id = managed_account.customerId
report_type = 'ACCOUNT_PERFORMANCE_REPORT'
report_fields = ['ExternalCustomerId', 'CustomerDescriptiveName', 'Date', 'Cost']
report_date_type = 'CUSTOM_DATE'
report_start_date = '20141201'
report_end_date = '20141211'
adwords_utils.GetPerformanceReport(client_id, report_type, report_fields, report_date_type, report_start_date, report_end_date)
return render_to_response('simple-table.html', {"managed_accounts": managed_accounts})
有问题的属性包括:adwords_utils.GetManagedAccounts
和adwords_utils.GetPerformanceReport
。
正如您所看到的,辅助模块并未声明一个类,因为这些方法不是特定于类的,并且它们旨在用作辅助方法。不确定问题出在哪里。
完成追溯:
Environment:
Request Method: GET
Request URL: http://104.236.122.5/account-hierarchy/
Django Version: 1.6.1
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'reporting')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
112. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/django/django_project/reporting/views.py" in account_hierarchy
12. managed_accounts.extend(adwords_utils.GetManagedAccounts(manager_id))
Exception Type: AttributeError at /account-hierarchy/
Exception Value: 'module' object has no attribute 'GetManagedAccounts'