sql – Mostrar una consulta que muestre el salario anual, el salario mensual y quincenal y el departamento de todos los empleados que sean gerentes

Hola como aria esto es que apenas estoy aprendiendo sql.

Mostrar una consulta que muestre el salario anual, el salario mensual y quincenal y el departamento de todos los empleados que sean gerentes.

SELECT salario*12 as salario_anual, salario as salario_quicenal, FROM empleado
y no tengo ni idea de como mostrar el departamento solo si es gerente

introducir la descripción de la imagen aquí

php – poner color a una columna especifica con DataTable desde JAVASCRIPT

Quiero poner color a una columna DataTable especifica desde javascript. los datos que se muestra en la tabla son obtenidos desde la DB.

introducir la descripción de la imagen aquí

Esta parte de código es el lado view

 <div class="table-responsive">
              <table id="Tablexample" class="table mb-0 table-hover" cellspacing="0" width="100%">
                <thead>
                  <tr class="btn-info">
                    <th></th>                                         
                    <th>Fecha</th>
                    <th>Clientes</th>                       
                    <th>Moneda</th>
                    <th>Total</th>
                    <th class="bg-danger">Estado</th>
                    <th>Cobro</th>
                    <th>Saldo</th>                       
                    <th>Opciones</th>
                  </tr>
                </thead>

              </table>

            </div>

mysql – ¿Cómo puedo relacionar dos veces una tabla de diferente manera?

tengo una duda en cuanto al diseño de una base de datos de ventas de juguetes, en donde ocupo que en un “ticket” de venta aparezcan tanto el cajero como el vendedor que realizaron la venta. Tanto el cajero como el vendedor se encuentran en la tabla “trabajadores” pero, ¿Cómo puedo hacer para que pueda referenciar dos veces la misma tabla en diferentes conceptos?

Aquí está la imagen del diseño que he hecho hasta ahora

python – Multiplicar una columna del marco de datos en función de varias condiciones

Me gustaria multiplicar una columna (o crear una nueva con los valores multiplicadas) basados sobre dos condiciones. Entonces intenté :

c1 = df('Mean')=='SEPA' and df('Engagement') == 'M'
c2 = df('Mean')!='SEPA' and df('Engagement') == 'M'
df.loc(c1, ('Amount Eq Euro')) *= 62
df.loc(c2, ('Amount Eq Euro')) *= 18

Aqui esta la dataframe

    Mean    Engagement  Amount Eq Euro
2   CB (PAYPAL) S   50.0
3   CB  S   50.0
4   CB  S   50.0
5   CB (PAYPAL) M   20.0
6   CB  S   75.0
... ... ... ...
6238    CB  S   30.0
6239    CB  S   80.0
6240    SEPA    M   10.0
6241    CB  S   100.0
6242    NaN M   10.0

Pero me devuelve:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-13-bbd424e0088f> in <module>()
      3 #                                            df('Amount Eq Euro') * 18)
      4 
----> 5 c1 = df('Mean')=='SEPA' and df('Engagement') == 'M'
      6 c2 = df('Mean')!='SEPA' and df('Engagement') == 'M'
      7 df.loc(c1, ('Amount Eq Euro')) *= 62

/usr/local/lib/python3.7/dist-packages/pandas/core/generic.py in __nonzero__(self)
   1328     def __nonzero__(self):
   1329         raise ValueError(
-> 1330             f"The truth value of a {type(self).__name__} is ambiguous. "
   1331             "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
   1332         )

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

html – Quisiera saber como puedo pasar el valor de un Observable que me arroja un metodo post a una tabla en angular?

Buenas soy nuevo en angular y estoy haciendo una consulta para obtener valores del backend,
en form: Consulta ,estoy colocando como parametros Fecha y Codigo para buscar esos valores,
lo que tengo duda es como puedo pasar el resultado que recibo del Observable a una
tabla en el html recibo la data pero noce como pasar esos parametros del Observable a una
tabla o si debo crear un metodo Get para eso.

Esta es la api de donde Consulto al backend.

      BuscarTag(form: Consulta):Observable<Respuesta>{
       return this.http.post<Respuesta>(this.url + '/api/Reportes/Consulta' ,form, this.headers);
      }

Y Aqui el Metodo para hacer la Consulta

  Respuesta: Rpta() = ();
  Consulta: Consult;

  ConsultaForm = new FormGroup({
  fecha: new FormControl(''),
  codigo: new FormControl(''),
  });

      BuscarConsulta(){
       this.service.BuscarConsulta(this.ConsultaForm.value).subscribe(
       resp => {
       console.log(resp);
       debugger
      });

  }

c++ – Intentando crear una aplicación Gatt Client para Windows C ++ que no falle cuando se establece la conexión

Estoy usando la api de Windows Gatt Client BLE para C++, mi intención es conectar dos dispositivos al mismo tiempo usando Gatt, cada dispositivo tiene asociada una característica de escritura y una de lectura en el mismo servicio, por lo que realmente almacenar una característica de escritura por dispositivo y suscribirse a la característica de lectura sería suficiente para que funcione correctamente, utilizo un map<wstring, DeviceCacheEntry> para almacenar dispositivos donde ese wstring es el id (bluetooth mac) que obtengo cuando enumero los dispositivos que usan DeviceWatcher y que usan esa map caché para suscribirse a la característica de lectura usando la función SubscribeCharacteristic, y Write usando la función SendData, aquí está todo el código que uso para comprender mejor lo que realmente hago:

#pragma region STRUCS AND ENUMS

guid make_guid(const wchar_t* value)
{
    // Returns a valid guid from a wstring
}

mutex subscribeLock;
condition_variable subscribeSignal;

mutex _mutexWrite;
condition_variable signalWrite;

struct DeviceCacheEntry {
    BluetoothLEDevice device = nullptr;
    GattDeviceService service = nullptr;
    GattCharacteristic characteristic = nullptr;
};
map<wstring, DeviceCacheEntry> cache;

struct BLEDeviceData {
    wstring id;
    wstring name;
    bool isConnectable = false;
};    
vector<BLEDeviceData> deviceList{};

#pragma endregion

#pragma region CACHE FUNCTIONS

//Call this function to get a device from cache or async if it wasn't found
IAsyncOperation<BluetoothLEDevice> getDevice(wchar_t* deviceId) {
    if (cache.count(wstring(deviceId)) && cache(wstring(deviceId)).device)
        co_return cache(wstring(deviceId)).device;
    BluetoothLEDevice result = co_await BluetoothLEDevice::FromIdAsync(deviceId);
    if (result == nullptr) {
        // Failed to connect to device.
        co_return nullptr;
    }
    else {
        DeviceCacheEntry d;
        d.device = result;
        if (!cache.count(wstring(deviceId))) {
            cache.insert({ wstring(deviceId), d });
        }
        else {
            cache(wstring(deviceId)) = d;
        }
        co_return cache(wstring(deviceId)).device;
    }
}

//Call this function to get a service from cache or async if it wasn't found
IAsyncOperation<GattDeviceService> getService(wchar_t* deviceId, wchar_t* serviceId) {
    if (cache.count(wstring(deviceId)) && cache(wstring(deviceId)).service)
        co_return cache(wstring(deviceId)).service;
    auto device = co_await getDevice(deviceId);
    if (device == nullptr)
        co_return nullptr;
    GattDeviceServicesResult result = co_await device.GetGattServicesForUuidAsync(make_guid(serviceId), BluetoothCacheMode::Cached);
    if (result.Status() != GattCommunicationStatus::Success) {
        // Failed retrieving services.
        co_return nullptr;
    }
    else if (result.Services().Size() == 0) {
        // No service found with uuid 
        co_return nullptr;
    }
    else {
        if (cache.count(wstring(deviceId))) {
            cache(wstring(deviceId)).service = result.Services().GetAt(0);
        }
        co_return cache(wstring(deviceId)).service;
    }
}

//Call this function to get a characteristic from cache or async if it wasn't found
IAsyncOperation<GattCharacteristic> getCharacteristic(wchar_t* deviceId, wchar_t* serviceId, wchar_t* characteristicId) {
    try {
        if (cache.count(wstring(deviceId)) && cache(wstring(deviceId)).characteristic)
            co_return cache(wstring(deviceId)).characteristic;
        auto service = co_await getService(deviceId, serviceId);
        if (service == nullptr)
            co_return nullptr;
        GattCharacteristicsResult result = co_await service.GetCharacteristicsForUuidAsync(make_guid(characteristicId), BluetoothCacheMode::Cached);
        if (result.Status() != GattCommunicationStatus::Success) {
            // Error scanning characteristics from service 
            co_return nullptr;
        }
        else if (result.Characteristics().Size() == 0) {
            // No characteristic found with uuid 
            co_return nullptr;
        }
        else {
            clearError();
            if (cache.count(wstring(deviceId))) {
                cache(wstring(deviceId)).characteristic = result.Characteristics().GetAt(0);
            }
            co_return cache(wstring(deviceId)).characteristic;
        }
    }
    catch (...) {
        // Exception while trying to get characteristic
    }
}

#pragma endregion

#pragma region SCAN DEVICES FUNCTIONS

//This function would be called when a new BLE device is detected
void DeviceWatcher_Added(DeviceWatcher sender, DeviceInformation deviceInfo) {
    BLEDeviceData deviceData;
    deviceData.id = wstring(deviceInfo.Id().c_str());
    deviceData.name = wstring(deviceInfo.Name().c_str());
    if (deviceInfo.Properties().HasKey(L"System.Devices.Aep.Bluetooth.Le.IsConnectable")) {
        deviceData.isConnectable = unbox_value<bool>(deviceInfo.Properties().Lookup(L"System.Devices.Aep.Bluetooth.Le.IsConnectable"));
    }
    deviceList.push_back(deviceData);
}

//This function would be called when an existing BLE device is updated
void DeviceWatcher_Updated(DeviceWatcher sender, DeviceInformationUpdate deviceInfoUpdate) {
    BLEDeviceData deviceData;
    deviceData.id = wstring(deviceInfoUpdate.Id().c_str());
    if (deviceInfoUpdate.Properties().HasKey(L"System.Devices.Aep.Bluetooth.Le.IsConnectable")) {
        deviceData.isConnectable = unbox_value<bool>(deviceInfoUpdate.Properties().Lookup(L"System.Devices.Aep.Bluetooth.Le.IsConnectable"));
    }
    deviceList.push_back(deviceData);
}

//Call this function to scan async all BLE devices
void ScanDevices(){
    IVector<hstring> requestedProperties = single_threaded_vector<hstring>({ L"System.Devices.Aep.DeviceAddress", L"System.Devices.Aep.IsConnected", L"System.Devices.Aep.Bluetooth.Le.IsConnectable" });
    hstring aqsFilter = L"(System.Devices.Aep.ProtocolId:="{bb7bb05e-5972-42b5-94fc-76eaa7084d49}")"; // list Bluetooth LE devices
    DeviceWatcher deviceWatcher = DeviceInformation::CreateWatcher(aqsFilter, requestedProperties, DeviceInformationKind::AssociationEndpoint);
    DeviceWatcher::Added_revoker deviceWatcherAddedRevoker = deviceWatcher.Added(auto_revoke, &DeviceWatcher_Added);
    DeviceWatcher::Updated_revoker deviceWatcherUpdatedRevoker = deviceWatcher.Updated(auto_revoke, &DeviceWatcher_Updated);
    deviceWatcher.Start();
}

#pragma endregion

#pragma region SUBSCRIBE/READ FUNCTIONS

//On this function you can read all data from the specified characteristic
void Characteristic_ValueChanged(GattCharacteristic const& characteristic, GattValueChangedEventArgs args)
{
    // Read data from args
}

//Function used to subscribe async to the specific device
fire_and_forget SubscribeCharacteristicAsync(wstring deviceId, wstring serviceId, wstring characteristicId, bool* result) {
    try {
        auto characteristic = co_await getCharacteristic(&deviceId(0), &serviceId(0), &characteristicId(0));
        if (characteristic != nullptr) {
            auto status = co_await characteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue::Notify);
            if (status != GattCommunicationStatus::Success) {
                // Error subscribing to characteristic
            }
            else {
                characteristic.ValueChanged(auto_revoke, &Characteristic_ValueChanged);
                if (result != 0)
                    *result = true;
            }
        }
    }
    catch (hresult_error& ex)
    {
        // SubscribeCharacteristicAsync error 
    }
    subscribeSignal.notify_one();
}

//Call this function to subscribe to the specific device so you can read data from it
bool SubscribeCharacteristic(wstring deviceId, wstring serviceId, wstring characteristicId) {
    unique_lock<mutex> lock(subscribeLock);
    bool result = false;
    SubscribeCharacteristicAsync(deviceId, serviceId, characteristicId, &result);
    subscribeSignal.wait(waitLock);
    return result;
}

#pragma endregion

#pragma region WRITE FUNCTIONS

//Function used to send data async to the specific device
fire_and_forget SendDataAsync(wchar_t* deviceId, wchar_t* serviceId, wchar_t* characteristicId, uint8_t * data, uint16_t size, bool* result) {
    try {
        auto characteristic = co_await getCharacteristic(deviceId, serviceId, characteristicId);
        if (characteristic != nullptr) {
            DataWriter writer;
            writer.WriteBytes(array_view<uint8_t const> (data, data + size));
            IBuffer buffer = writer.DetachBuffer();
            auto status = co_await characteristic.WriteValueAsync(buffer, GattWriteOption::WriteWithoutResponse);
            if (status != GattCommunicationStatus::Success) {
                // Error writing value to characteristic
            }
            else if (result != 0) {
                *result = true;
            }
        }
    }
    catch (hresult_error& ex)
    {
        // SendDataAsync error
    }
    signalWrite.notify_one();
}

//Call this function to write data on the device
bool SendData(wchar_t* deviceId, wchar_t* serviceId, wchar_t* characteristicId, uint8_t * data, uint16_t size) {
    bool result = false;
    // copy data to stack so that caller can free its memory in non-blocking mode
    SendDataAsync(deviceId, serviceId, characteristicId, data, size, &result);

    signalWrite.wait(lock);

    return result;
}

#pragma endregion

Después de eso, simplemente ejecuto el siguiente código:

//These are the serviceUUID, readCharacteristicUUID and writeCharacteristicUUID as I said previously
wstring serviceUUID = L"{47918888-5555-2222-1111-000000000000}";
wstring readUUID = L"{31a28888-5555-2222-1111-00000000cede}";
wstring writeUUID = L"{f55a8888-5555-222-1111-00000000957a}";  

//To start scanning just call this function
ScanDevices();

//Some code to be waiting until new devices are detected ...

//Then every device and their info updated would be in this vector
for(int i = 0; i < deviceList.size(); i++){
    if(deviceList(i).isConnectable){
        //If it is connectable then we will connect to that device subscribing to its readCharacteristic
        SubscribeCharacteristic(deviceList(i).id, serviceUUID, readUUID);
        //To read from that device all the data would be on Characteristic_ValueChanged function
    }
}

//And finally if we want to write data on a specific device deviceId we just need to do this
SendData(deviceId, serviceUUID, writeUUID, data, dataSize);

Cuando utilizo este código el 90% de las veces todo funciona como se espera, pero de vez en cuando al intentar conectar los dos dispositivos al mismo tiempo, el segundo arroja una excepción (generalmente los que saltan en los comentarios de “Failed retrieving services” dentro de la función getServices con un valor de resultado de GattCommunicationStatus::AccessDenied y/o “SendDataAsync error” con la excepción “el objeto se ha eliminado” (object has been disposed); otros errores/excepciones también ocurren en líneas similares, como cuando se escanean características del servicio o se intenta suscribir a la característica, prácticamente todos los errores son de “GattCommunicationStatus::AccessDenied” y excepciones “objeto ha sido eliminado”(object has been disposed), también puede ocurrir al pasar un rato conectado o enviando una gran cantidad de paquetes, pero suele funcionar bastante bien. ¿Alguien sabe dónde podría estar el problema?

mysql – Pasar un valor de jQuery a un modal en una variable php para usarla en una consulta

<!-- Modal -->
<div class="modal fade" id="modal_calculo" data-backdrop="static" data-keyboard="false" 
tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">Calcular Dosis</h5>
<button type="button" class="btn btn-dark" data-dismiss="modal" aria-label="Close">
  Cerrar
</button>
</div>
<div class="modal-body">
  
<input type="hidden" name="id_operacion" id="id_operacion" />
<label for="n_plaga">Seleccione Plaguicida: </label>
                            
<?php 
    require_once 'bd/bd.php';
    //$idd = $_POST("id_operacion");
   
    $query = mysqli_query($conexion,"SELECT pl.cod_plag, pl.nom_comercial
    FROM plag_plagui as pp 
    INNER JOIN plaga as p ON pp.cod_plag = p.cod_plag 
    INNER JOIN plaguicida as pl ON pp.cod_plagui= pl.cod_plag
    WHERE p.cod_plag =9");
    $result = mysqli_num_rows($query);
?>
                            
<label for="tipo_plag_m"></label>
<select class="form-control w-50 mx-auto" id="calculo">  
<option value="">Seleccione</option>
<?php 
    if ($result>0) {

        while ($tipo = mysqli_fetch_array($query)) {
             # code...
                                    
?>     

<option value="<?php echo $tipo("cod_plag");?>"><?php echo $tipo("nom_comercial"); ?></option>
<?php 
        }
    }
?>
</select>

<label for="dosis" class=" mt-2">Dosis por Hectarea</label>
<input type="text" id="dosis_plag"  class="form-control w-50 mx-auto" disabled>

<label for="dosis" class=" mt-2">Unidad de Medida</label>
<input type="text" id="unidad_dosis" class="form-control w-50 mx-auto" disabled>

<label for="dosis" class=" mt-2">Cantidad de Hectarea</label>
<input type="text" id="hectareas"  class="form-control w-50 mx-auto">

<div class=" text-center mt-5">
    <button class="btn btn-success" onclick="calcular()">Calcular</button>
    <button class="btn btn-warning" onclick ="borrar()">Borrar</button>
</div>       

Al seleccionar una botón abro el modal con JQuery, hasta ahi todo bien.

Luego tengo un archivo prueba.php que contiene ese modal, y en el modal-body tengo una consulta que extrae los plaguicidas a través de una consulta, pero la misma no es dinámica ya que en ella comparé con un valor “9” que hacía referencia al id de la plaga para arrojar los plaguicidas que le fueron asignados a dicha plaga.

Quiero que en lugar de ese “9” tener una variable $id_plaga que contenga el id de la plaga para que la consulta se dinámica.

Ahora si ven mi función function modal_call(idd) posee dentro de ella el id de la plaga que seleccione al darle click al botón “Selecciona” como ven en la imagen.

La pregunta es: ¿Existe una forma de usar ese valor Idd que recibe la función en mi archivo prueba.php dentro del modal y guardarla en una variable php para que la consulta sea dinámica.

function modal_call(idd){

$(document).on('change','#calculo',function(){
var id = $("#calculo").val()

$.ajax({
url: 'post_add/post_calculo.php',
data: 
{
id: id
},
type: 'POST',
dataType: 'json',
success : function(res){
$.each(res, function( index, v ) {
$('#dosis_plag').val(res(index).dosis_plag);

});

},
error : function(xhr, status) {

}, 
 complete : function(xhr, status) {
 }
 });

});
$("#modal_calculo").modal()
}  

introducir la descripción de la imagen aquí

Ayuda , no soy experto en esto, apenas aprendí lo básico.

Usar una variable de un archivo php a otro

Lo que necesito es pasar esta variable $id que tomo el valor a traves de ajax que se encuentra en post.php, pero quiero usarlo en otro archivo llamado prueba.php porque con esa variable puedo hacer dinamico una consulta que tengo en ese php. Este primer codigo es de post.php

<?php require_once '../bd/bd.php';

$id = $_POST('id');
$query = mysqli_query($conexion,"SELECT pl.dosis_plag,pl.unidad 
                                        FROM plag_plagui as pp 
                                        INNER JOIN plaga as p ON pp.cod_plag = p.cod_plag 
                                        INNER JOIN plaguicida as pl ON pp.cod_plagui= 
                                        pl.cod_plag
                                        WHERE pl.cod_plag ='$id'");
while ($result = mysqli_fetch_assoc($query)) {
    $data () = ($result);
  
}
echo json_encode($data);

?>

este es de prueba.php

    <div class="modal fade" id="modal_calculo" data-backdrop="static" data-keyboard="false" 
     tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <h5 class="modal-title" id="staticBackdropLabel">Calcular Dosis</h5>
    <button type="button" class="btn btn-dark" data-dismiss="modal" aria-label="Close">
      Cerrar
    </button>
  </div>
  
  <div class="modal-body">
      
  <input type="hidden" name="id_operacion" id="id_operacion" />

  <label for="n_plaga">Seleccione Plaguicida: </label>
                                
    <?php 
        require_once 'bd/bd.php';
        //$idd = $_POST("id_operacion");
       
        $query = mysqli_query($conexion,"SELECT pl.cod_plag, pl.nom_comercial
        FROM plag_plagui as pp 
        INNER JOIN plaga as p ON pp.cod_plag = p.cod_plag 
        INNER JOIN plaguicida as pl ON pp.cod_plagui= pl.cod_plag
        WHERE p.cod_plag =9");
        $result = mysqli_num_rows($query);
    ?>
                                
    <label for="tipo_plag_m"></label>
    <select class="form-control w-50 mx-auto" id="calculo">  
    <option value="">Seleccione</option>
    <?php 
        if ($result>0) {

            while ($tipo = mysqli_fetch_array($query)) {
                 # code...
                                        
     ?>     
    
    <option value="<?php echo $tipo("cod_plag");?>"><?php echo $tipo("nom_comercial"); ?></option>
    <?php 
            }
        }
    ?>
    </select>

    <label for="dosis" class=" mt-2">Dosis por Hectarea</label>
    <input type="text" id="dosis_plag"  class="form-control w-50 mx-auto" disabled>

    <label for="dosis" class=" mt-2">Unidad de Medida</label>
    <input type="text" id="unidad_dosis" class="form-control w-50 mx-auto" disabled>

    <label for="dosis" class=" mt-2">Cantidad de Hectarea</label>
    <input type="text" id="hectareas"  class="form-control w-50 mx-auto">

    <div class=" text-center mt-5">
        <button class="btn btn-success" onclick="calcular()">Calcular</button>
        <button class="btn btn-warning" onclick ="borrar()">Borrar</button>
    </div>       
  </div>
 
</div>

como se dieron cuenta uso un modal y dentro de el tengo una consulta que lo que hace es mostrarme unos valores en una select dependiendo de lo q yo escoja previamente y eh colocado un “9” como quemado pero yo necesito que en lugar de ese “9” este esa variable $id del otro post.php

Django visualizar una imagen – Stack Overflow en español

necesito mostrar una imagen la cual esta en media/productos/, es algo que esta muy bien documentado pero aun asi no logro hacer que muestre la imagen, si pongo form.imagen.url es un valor vacio, aca esta lo que tengo hasta ahora:

tengo esta linea de codigo en el archivo models.py que esta en una app llamada user, es decir el proyecto en si se llama trabajo final

class Producto(models.Model):
    CATEGORIA = (
        ('Electrodomesticos' , 'Electrodomesticos'),
        ('Electrónica', 'Electrónica'),
        ('Deportes', 'Deportes'),
        ('Bebés', 'Bebés'),
        ('Hogar', 'Hogar')
    )

    nombre = models.CharField(max_length=100)
    descripcion = models.CharField(max_length=100)
    precio = models.FloatField()
    categoria = models.CharField(max_length=50, choices=CATEGORIA)
    date_created = models.DateTimeField(auto_now_add=True)
    # imagen = models.CharField(max_length=100, null=True)
    imagen = models.ImageField(upload_to="productos", blank=True, null=True)

En el archivo urls.py que esta en trabajo final tengo esta linea de codigo
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

En el archivo settings tengo estas lineas de codigo

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')```

Como necesito cargar informacion que ya esta en la base de datos me auxilio de un id
Este codigo esta en el archivo views.py en la app user

```def productoEdit(request, pk):
  producto = Producto.objects.get(id=pk)
  form = CreateProductForm(instance=producto)
  if request.method == 'POST':
    form = CreateProductForm(request.POST, instance=producto)
    if form.is_valid():
      form.save()
      redirect('productoCrud')

  return render(request, 'productoCrud.html', {'form': form})

a la vista productoCrud le paso el contexto form y todo funciona bien, excepto que {{form.imagen.url}} esta vacia, he intentando esto {{form.imagen.value}}, pero como veran mas abajo me trae solo productos/tv.jpg

Este ankor se genera automatiamente en el formulario
<a href="/media/productos/tv.jpg">productos/tv.jpg</a>

Que estoy haciendo mal??? muchas gracias por su ayuda

java – Convertir una cadena a un Objeto JSON

Tengo un json y dentro de ese json hay una key que tiene otro json en una cadena y no siempre sera la misma como en el ejemplo,La key valorres puede tener ese json en cadena o puede tener otro, no siempre sera la misma cadena ni las mismas key pueden ser varias, diferentes nombres o mas de las presentes en esa cadena JSON

Como podria convertir ese json dentro de valores a un objeto en mi getter ?

Como esta actualmente.

{
    "monto": "321321",
    "valores": "{"mm":"05","mont":"1234560000","id":"1","hrg":"H10000","np":"1"}",
    "valance": 0
}

Como deberia quedar.

{
   "monto":"321321",
   "valores":{
      "mm":"05",
      "mont":"1234560000",
      "id":"1",
      "hrg":"H10000",
      "np":"1"
   },
   "valance":0
}

Lo intento asi:

@JsonGetter ("valores")
public Object getValores() {
  Map<String,Object> map = new HashMap<>();
  map.put(getKey(),valores);
  return map;
}

retorna asi

{
    "id": 16,
    "valores": {
        "formato": " {"mm":"05","mont":"1234560000","id":"1","hrg":"H10000","np":"1"} "
    },
    "valance": 0
}