Python Django管理司令部:';命令';对象没有属性';META&x27;
我有一个管理命令,它输出一个函数输出。但执行后会出现错误 错误是什么?如何解决Python Django管理司令部:';命令';对象没有属性';META&x27;,python,django,Python,Django,我有一个管理命令,它输出一个函数输出。但执行后会出现错误 错误是什么?如何解决 from django.core.management.base import BaseCommand from Destinations.models import * from LCR.views import * class Command(BaseCommand): help = 'Generates a LCR when executed ' def handle(self,*args,
from django.core.management.base import BaseCommand
from Destinations.models import *
from LCR.views import *
class Command(BaseCommand):
help = 'Generates a LCR when executed '
def handle(self,*args, **kwargs):
LCR(self)
(VE)C:\Users\Bitswits 3\Desktop\LCRProject\leastcstrouting>python
manage.py my_dest_命令{'48':['Tata','0.531','Tata','
“0.531”、“塔塔”、“0.531”、“塔塔”、“0.531”、“塔塔”、“0.531”、“塔塔”、“0.531”]、“23”:[“塔塔”、“4.150”、“塔塔”、“4.150”、“塔塔”、”
4.150、塔塔、4.150、塔塔、4.150、塔塔、4.150、PTCL、0.888、PTCL、0.888、PTCL、0.888、PTCL、0.888、PTCL、0.888、,
'PTCL','0.888','PTCL','0.888']}
回溯(最近一次调用last):文件“manage.py”,第22行,在
从命令行(sys.argv)文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\core\management\uuuuuu init\uuu.py”中执行命令,
第364行,从命令行执行命令
utility.execute()文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\core\management\uuuu init\uuuu.py”,
执行中的第356行
self.fetch_命令(子命令)。从_argv(self.argv)文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\core\management\base.py”运行_,
第283行,来自argv的运行中
self.execute(*args,**cmd\u options)文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\core\management\base.py”,
第330行,执行中
output=self.handle(*args,**options)文件“C:\Users\Bitswits 3\Desktop\LCRProject\leastcourting\Destinations\management\commands\my\u dest\u commands.py”,
第14行,在手柄中
在LCR中打印LCR(self)文件“C:\Users\Bitswits 3\Desktop\LCRProject\leatstrouting\LCR\views.py”,第269行
返回呈现(请求,模板,{“ratelist”:ratelist,“emailadd”:emailadd})文件
“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\shortcuts.py”,
第30行,在渲染中
content=loader.render_to_string(模板名称、上下文、请求、using=using)文件
“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\template\loader.py”,
第68行,在render_to_字符串中
返回template.render(context,request)文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\template\backends\django.py”,
第66行,在渲染中
返回self.template.render(上下文)文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\template\base.py”,
第205行,在渲染中
使用context.bind_模板(self):文件“c:\python27\Lib\contextlib.py”,第17行,在中输入
返回self.gen.next()文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\template\context.py”,
第263行,在bind_模板中
updates.update(processor(self.request))文件“C:\Users\BITSWI~1\Desktop\LCRPRO~1\VE\lib\site packages\django\template\context\u processors.py”,
第43行,在调试中
如果settings.INTERNAL\u IPS:AttributeError中的settings.DEBUG和request.META.get('REMOTE\u ADDR'):'Command'对象没有
属性“META”
在命令中,将命令实例本身传递给函数 就我所见,由于请求实例没有为LCR逻辑使用任何东西,所以应该将它从视图函数封装到单独的函数中,以便可以从两个位置调用它
例如:
在>leastConstrouting\LCR\views.py中定义一个新方法,例如
def get_LCR():
#从最初的方法开始采取一切措施:
emailadd=Email.objects.all()
# ---
#另一个代码
#直至:
打印(费率表)
返回{“ratelist”:ratelist,“emailadd”:emailadd}
然后在LCR方法中调用它,如:
在您的命令方法中,例如:
当你还没有显示命令的代码时,我们怎么回答这个问题?@DanielRoseman请现在检查一下。我忘了加上它,这根本没用。什么是LCR?@DanielRoseman LCR是一个返回该输出的函数。我将用代码更新问题。@DanielRoseman也请看一看我之前问的问题。如何封装?
def LCR(request):
template = "LCR\LCRGen.html"
emailadd = Email.objects.all()
dest = Destination.objects.values_list('dest_num', flat=True)
ratelist = {}
csv_file = { }
data_set = { }
io_string = { }
vendor = RateFile.objects.values_list()
v_count = vendor.count()
for v_id, v_name, v_file in vendor:
vendor_name = str(v_name)
#converted into a string so that i may be used to reference for file creation with the vendor name. like this (csv_fileTata)
vendornames = str(v_name)
#converted into a string to use as an empty dict var name
vendornames = { }
for desNum in dest:
desNum = str(desNum)
for countvar in range(v_count):
csv_file[vendor_name] = RateFile.objects.get(id=v_id).ven_file
data_set[vendor_name] = csv_file[vendor_name].read().decode("UTF-8")
io_string[vendor_name] = io.StringIO(data_set[vendor_name])
next(io_string[vendor_name])
for column in csv.reader(io_string[vendor_name], delimiter=str(u",")):
#creates a dictionary with the name of the vendor,the number as key and rate as value
vendornames[column[0]] = column[1]
# csvfile.close()
for venNum, venValue in vendornames.items():
venlen = len(venNum)
deslen = len(desNum)
# csvfile = open('csvfile.csv','w')
if venlen >= deslen:
if desNum[:-1]==venNum[:-1] and desNum[:-2]==venNum[:-2] and desNum[:-3] == venNum[:-3]:
# print ('====================')
# print (venNum)
# print (desNum)
# print "Works well 1"
# print ('====================')
# ratelist[desNum] = [vendor_name, venValue]
# ratelist[desNum].append(venValue)
# rates = dict((desNum, tuple(vendor_name))
# for desNum, vendor_name in ratelist.items())
# thewriter.writerow
# ({'Destinations':[desNum], 'Vendors':[vendor_name], 'Rates':[venValue] })
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
if vendor_name and venValue in desNum:
print 'stuff'
else:
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
elif desNum[:-1] == venNum[:-2] and desNum[:-2] == venNum[:-3] and desNum[:-3] == venNum[:-4]:
# print ('====================')
# print (venNum)
# print (desNum)
# print (venValue)
# print "Works well 2"
# print ('====================')
# ratelist[desNum].append(vendor_name)
# rates = dict((desNum, tuple(venValue)) for desNum, vendor_name in ratelist.iteritems())
# thewriter.writerow({'Destinations':[desNum], 'Vendors':[vendor_name], 'Rates':[venValue]})
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
if vendor_name and venValue in desNum:
print 'stuff'
else:
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
elif desNum[:-1] == desNum[:-3] and desNum[:-2] == venNum[:-4] and desNum[:-3] == venNum[:-5]:
# ratelist[desNum].append(vendor_name)
# rates = dict((desNum, tuple(venValue)) for desNum, vendor_name in ratelist.iteritems())
# thewriter.writerow
# ({'Destinations':[desNum], 'Vendors':[vendor_name], 'Rates':[venValue] })
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
if vendor_name and venValue in desNum:
print "STUFF"
else:
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
# print ('====================')
# print (venNum)
# print (desNum)
# print (venValue)
# print "Works well3"
# print ('====================')
elif desNum[:-1] == venNum[:-4] and desNum[:-2] == venNum[:-5]:
# ratelist[desNum].append(vendor_name)
# rates = dict((desNum, tuple(venValue)) for desNum, vendor_name in ratelist.iteritems())
# thewriter.writerow
# ({'Destinations':[desNum], 'Vendors':[vendor_name], 'Rates':[venValue] })
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
if vendor_name and venValue in desNum:
print "FOUND"
else:
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
elif desNum[:-1] == venNum[:-5] and desNum[:-2] == venNum[:-6]:
# ratelist[desNum].append(vendor_name)
# rates = dict((desNum, tuple(venValue))
# for desNum, vendor_name in ratelist.iteritems())
# print rates
# thewriter.writerow
# ({'Destinations':[desNum], 'Vendors':[vendor_name], 'Rates':[venValue] })
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
if vendor_name and venValue in desNum:
print 'STUFF'
else:
ratelist.setdefault(
desNum, []).append(vendor_name)
ratelist.setdefault(
desNum, []).append(venValue)
# print ('====================')
# print (venNum)
# print (desNum)
# print (venValue)
# print "Works well5"
# print ('====================')
else:
# thewriter.writerow({'Destinations': [desNum], 'Vendors': [
# vendor_name], 'Rates': [venValue]})
pass
# thewriter.writerow(
# {'Destinations':desNum, 'Vendors':vendor_name, 'Rates':venValue})
# csvfile.close()
csvfile = open('csvfile.csv','w')
headers = ['Destinations', 'Vendors', 'Rates']
thewriter = csv.DictWriter(csvfile, fieldnames=headers)
thewriter.writeheader()
thewriter.writerow({'Destinations':venNum, 'Vendors':[vendor_name], 'Rates':[venValue] })
print ( ratelist )
return render (request, template, {"ratelist": ratelist, "emailadd": emailadd } )
class Command(BaseCommand):
help = 'Generates a LCR when executed '
def handle(self,*args, **kwargs):
LCR(self) # <<
def LCR(request):
template = "LCR\LCRGen.html"
# ....
return render (request, template, {"ratelist": ratelist, "emailadd": emailadd } )
return render (request, template, get_LCR() )
def handle(self,*args, **kwargs):
get_LCR()