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()