Beispiel #1
0
 def queryset_apply_baseno(self, baseno):
     if(self.is_sharded_baseno()):
         baseno = toint(baseno, None)
         if baseno :
             self.kwargs['baseno'] = baseno
             self.queryset = self.queryset.filter(baseno = baseno)
         else:
             raise Http404
     return self.queryset
Beispiel #2
0
 def queryset_apply_baseno(self, baseno):
     if self.is_sharded_baseno():
         baseno = toint(baseno, None)
         if baseno:
             self.kwargs["baseno"] = baseno
             self.queryset = self.queryset.filter(baseno=baseno)
         else:
             raise Http404
     return self.queryset
Beispiel #3
0
    def queryset_handle_baseno(self, request, *args, **kwargs):
        """
        Берет параметр `номера шарда` из параметров HTTP запроса (baseno).
        И добавляет его к параметрам запроса к БД.
        """
        pkstr = self.kwargs.get(self.pk_url_kwarg, None)
        if not pkstr or not hasattr(pkstr, "split"):
            return self.queryset_handle_baseno_plain(request, *args, **kwargs)

        if self.is_sharded_baseno():
            pklist = pkstr.split("-")
            if len(pklist) > 1:
                baseno = toint(pklist[0], None)
                if not baseno:
                    raise Http404
                self.kwargs["baseno"] = baseno
                self.kwargs[self.pk_url_kwarg] = pklist[1]
                return self.queryset_apply_baseno(baseno)
        return self.queryset_handle_baseno_plain(request, *args, **kwargs)
Beispiel #4
0
    def queryset_handle_baseno(self, request, *args, **kwargs):
        '''
        Берет параметр `номера шарда` из параметров HTTP запроса (baseno).
        И добавляет его к параметрам запроса к БД.
        '''
        pkstr = self.kwargs.get(self.pk_url_kwarg, None)
        if(not pkstr or not hasattr(pkstr, 'split')):
            return self.queryset_handle_baseno_plain(request, *args, **kwargs)

        if(self.is_sharded_baseno()):
            pklist = pkstr.split("-")
            if(len(pklist) > 1):
                baseno = toint(pklist[0], None)
                if not baseno:
                    raise Http404
                self.kwargs["baseno"] = baseno;
                self.kwargs[self.pk_url_kwarg] = pklist[1]
                return self.queryset_apply_baseno(baseno)
        return self.queryset_handle_baseno_plain(request, *args, **kwargs)
Beispiel #5
0
    def get_default_from_db(cls, self, connection, dbname):
        '''
            Возвращает значение поля по-умолчанию из базы данных.
            Обращения к описанием полей кешируются по числу обращений.
            Количество обращений задается константой
                DEFAULT_FIELDS_TIMEOUT_TIMES
        '''

        default = None
        data_type = None
        if (not (self.null)):
            default = 0

        ## Если значение по умолчанию не определено,
        ## то запрашиваем его в базе данных.

        db_descr = cls.get_db_descr(self, connection, dbname)

        if (None != db_descr):
            default = db_descr.get('column_default')
            data_type = db_descr.get('data_type')

        #if("bannerpriority" == self.name):
        #print
        #print "default = ", default, data_type
        #print

        if (self.null and None == default):
            default = None
        else:

            if ('int' == data_type):
                default = toint(default, 0)
            elif ('smallint' == data_type):
                default = toint(default, 0)
            elif ('tinyint' == data_type):
                default = toint(default, 0)

            elif ('bigint' == data_type):
                default = toint(default, 0)
            elif ('float' == data_type):
                default = tofloat(default, 0.0)
            elif ('double' == data_type):
                default = tofloat(default, 0.0)
            elif ('decimal' == data_type):
                default = tofloat(default, 0.0)
            elif ('timestamp' == data_type):
                try:
                    default = datetime.datetime.strptime(
                        default, "%Y-%m-%d %H:%M:%S")
                except:
                    if (self.null):
                        default = None
                    else:
                        default = 0
            else:
                pass
                #logging.warn(u'unknown data_type %s'%(data_type))

        if ("reservedtime" == self.name):
            print
            print "default 2 = ", default, data_type
            print

        if (self.default == GET_DEFAULT_FROM_DB):
            self.default = default
            self.value = default

        return default
Beispiel #6
0
 def get_qbaseno(self, request, *args, **kwargs):
     baseno = request.QUERY_PARAMS.get("baseno", None)
     baseno = toint(baseno, None)
     return baseno
Beispiel #7
0
 def get_qbaseno(self, request, *args, **kwargs):
     baseno = request.QUERY_PARAMS.get('baseno', None)
     baseno = toint(baseno, None)
     return baseno
    def get_default_from_db(cls, self, connection, dbname):

        '''
            Возвращает значение поля по-умолчанию из базы данных.
            Обращения к описанием полей кешируются по числу обращений.
            Количество обращений задается константой
                DEFAULT_FIELDS_TIMEOUT_TIMES
        '''


        default = None
        data_type = None
        if (not (self.null)):
            default = 0

        ## Если значение по умолчанию не определено,
        ## то запрашиваем его в базе данных.


        db_descr = cls.get_db_descr(self, connection, dbname)

        if(None != db_descr):
            default  = db_descr.get('column_default')
            data_type = db_descr.get('data_type')


        #if("bannerpriority" == self.name):
            #print
            #print "default = ", default, data_type
            #print

        if (self.null and None == default ):
            default = None;
        else:

            if('int' == data_type):
                default = toint(default, 0)
            elif('smallint' == data_type):
                default = toint(default, 0)
            elif('tinyint' == data_type):
                default = toint(default, 0)


            elif('bigint' == data_type):
                default = toint(default, 0)
            elif('float' == data_type):
                default = tofloat(default, 0.0)
            elif('double' == data_type):
                default = tofloat(default, 0.0)
            elif('decimal' == data_type):
                default = tofloat(default, 0.0)
            elif('timestamp' == data_type):
                try:
                    default = datetime.datetime.strptime(
                        default,
                        "%Y-%m-%d %H:%M:%S"
                    )
                except:
                    if (self.null):
                        default = None
                    else:
                        default = 0
            else:
                pass
                #logging.warn(u'unknown data_type %s'%(data_type))


        if("reservedtime" == self.name):
            print
            print "default 2 = ", default, data_type
            print



        if(self.default == GET_DEFAULT_FROM_DB):
            self.default = default
            self.value = default

        return default