2014-11-25 3 views
0

Я читаю этот блок кодов (находится внутри функции в файле представлений Django), где класс Job присваивается заданию переменной, как показано ниже (см. Последний 6 строк). Коды не найдены в Интернете.Назначение класса переменной в представлениях Django

Я еще не сталкивался с этим методом вызова внешнего класса. Является ли это обычным способом присвоения класса переменной в Django?

Спасибо!

def ajax_save_job(request,session): 
    c = {} 
    user_model = session.get_property('user_model') 
    userid = user_model.get_property('UserID') 
    JobID = request.POST.get('JobID',False) 
    collectAddress = request.POST.get('collectAddress',False) 
    collectContactNumber = request.POST.get('collectContactNumber',False) 
    collectContactName = request.POST.get('collectContactName',False) 
    deliverAddress = request.POST.get('deliverAddress',False) 
    deliverContactNumber = request.POST.get('deliverContactNumber',False) 
    deliverContactName = request.POST.get('deliverContactName',False) 
    collectCompanyName = request.POST.get('collectCompanyName',False) 
    deliverCompanyName = request.POST.get('deliverCompanyName',False) 
    price = request.POST.get('price',False) 
    parcelWeight = request.POST.get('parcelWeight',False) 
    parcelSize = request.POST.get('parcelSize',False) 
    collectDate = request.POST.get('collectDate',False) 
    collectTimeFrom = request.POST.get('collectTimeFrom',False) 
    collectTimeEnd = request.POST.get('collectTimeEnd',False) 
    deliverDate = request.POST.get('deliverDate',False) 
    deliverTimeFrom = request.POST.get('deliverTimeFrom',False) 
    deliverTimeEnd = request.POST.get('deliverTimeEnd',False) 
    rearrangementStatus = request.POST.get('rearrangementStatus',False) 
    rearrangementMaxLimit = request.POST.get('rearrangementMaxLimit',False) 
    RearrangementExpiry = request.POST.get('RearrangementExpiry',False) 
    parcelDescription = request.POST.get('parcelDescription',False) 
    collectedon = request.POST.get('collectedon',False) 
    deliveredon = request.POST.get('deliveredon',False) 
    collectPostal = request.POST.get('collectPostal',False) 
    deliverPostal = request.POST.get('deliverPostal',False) 
    assignedTo = request.POST.get('assignedTo',False) 
    status = request.POST.get('status',False) 
    job = False 
    output = {} 
    try: 
     job = Job.init(JobID,index="JobID",multiple=False) 
     if (job.properties['status'].lower() == 'processing' or job.properties['status'].lower() == 'bidding') and assignedTo != job.properties['assignedTo'] : 
      status ='Assigned' 
    except: 
     job = False 

класс работы (базовый):

table = 'tbl_jobs' 
index = 'JobID' 

def __init__(self,**kwargs): 
    Base.__init__(self) 
    self.keys = ['JobID'] 
    self.required_property_list = ['postByUserID','price'] 
    self.unique_properties = [] 
    self.db_fields = ['paypalToken','JobID','postByUserID','jobName','parcelDescription','parcelSize','parcelWeight','declaredValue','collectDate','collectTimeFrom','collectTimeEnd','collectContactName','collectContactNumber','collectPostal','collectAddress','collectRegion','collectLatitude','collectLongitude','deliverDate','deliverTimeFrom','deliverTimeEnd','deliverContactName','deliverContactNumber','deliverPostal','deliverAddress','deliverRegion','deliverLatitude','deliverLongitude','biddingTime','biddingTimeEnd','price','postedOn','assignedTo','posted_by','PAID','jobType','status','paymentMethod','collectCompanyName','deliverCompanyName','collectSelfRefName','deliverSelfRefName','collectContactEmail','deliverContactEmail'] 

    if len(kwargs) == 0: 
     return 

    for key in kwargs:  
     self.properties[key] = kwargs[key] 

    missing_properties = self.required_properies() 
    if len(missing_properties) > 0: 
     raise UserModelPropertyMissingException('Required Property Missing',missing_properties) 

ответ

0

Он смотрит на меня, - и это только предположение - как то, что здесь происходит, что вы создаете экземпляр задания с указанным идентификатором, и, указав «multiple = False», вы имеете в виду, что если он уже существует, вы хотите, чтобы существующий, а не новый, - тип флага get-or-create. Затем вы можете использовать статус этой работы, чтобы обновить статус того, что вы делаете.

Очевидно, что не нужно больше ходить, это просто удар в темноте.

+0

спасибо за объяснение. Я добавил в класс Job Code также. – codemax

Смежные вопросы