Modelo MVC aplicacado en aplicacion web PHP

Estoy usando un hosting en la cual los archivos que se muestran en la pagina web estan dentro de la carpeta public_html. Utilizando un modelo de referencia Modelo Vista Controlador. ¿Debería considerar la carpeta public_html como la carpeta “VISTA”o dentro de la carpeta public_html creo una nueva carpeta “VISTA” , “CONTROLADOR”, “MODELO”.?

Filtrar objetos de un modelo según lista de palabras claves

Buenos días tengo el siguiente models.py

class Article(models.Model): id_news = models.UUIDField(primary_key=True, default=uuid.uuid4) # title = models.CharField('Título de la Noticia',max_length=1000, blank=True, null=True) news_website = models.ForeignKey(NewsWebsite, blank=True, null=True, on_delete=models.PROTECT) seccion = models.CharField('Sección', max_length=1000, blank=True, null=True) texto_resumen = models.CharField('Resumen de la Noticia', max_length=1000, blank=True, null=True) description = models.TextField('Texto de la Noticia', blank=True, null=True) autor = models.CharField('Autor', max_length=200, blank=True, null=True) tags = models.CharField('Tags', max_length=1000, blank=True, null=True) url = models.URLField('URL de la Noticia', max_length=1000, blank=True, null=True) estado_revision = models.CharField('Estado Noticia', max_length=100, blank=True, null=True, default='Pendiente') # este campo es para validar si ya esta procesado thumbnail = models.CharField('Url imagen',max_length=1000, blank=True) fecha_publicacion = models.CharField('Fecha Publicacion', max_length=50, blank=True, null=True) fecha_registro = models.DateTimeField(auto_now_add = True) fecha_modificacion = models.DateTimeField(auto_now = True) checker_runtime = models.ForeignKey(SchedulerRuntime, blank=True, null=True, on_delete=models.SET_NULL)  def __str__(self):     return self.title   class TipoDelito(models.Model): nombre_delito = models.CharField('Delito', max_length=100, blank=True, null=True)  class Meta:     ordering = ["nombre_delito"]  def __str__(self):     return self.nombre_delito  class DiccionarioDelito(models.Model): TipoDelito= models.ForeignKey(TipoDelito, on_delete=models.PROTECT,verbose_name='Tipo Delito',blank=False, null=False) Accion=models.CharField('Acción delito', max_length=100, blank=False, null=True) estadoTipoDelito=models.BooleanField(default=True,verbose_name='Estado Tipo Delito') fecha_registro = models.DateTimeField(auto_now_add = True) fecha_modificacion = models.DateTimeField(auto_now = True)  class Meta:     verbose_name = 'Diccionario Delito'     verbose_name_plural = 'Diccionario Delitos'     ordering = ["TipoDelito"]  def __str__(self):     return str(self.TipoDelito)+"-"+str(self.Accion) 

y en mi admin.py tengo

    def get_queryset(self,request):        keywords = DiccionarioDelito.objects.values_list('Accion',flat=True)        filtro=Article.objects.filter(description__contains=[keywords])     return filtro 

Mi idea es poder filtrar el modelo Article en el campo description mediante un diccionario que se arma con el modelo DicionarioDelito en los campos TipoDelito y Accion, mi intención es que dichas palabras se busquen dentro de cada Article y me devuelva aquellos Articles que contengan alguna de esas palabras. les quedaría muy agradecido si me podrían dar por favor una mano con este tema.

¿Es posible crear una columna virtual para un modelo para una consulta join en RoR?

Realmente estuve pensando en como titular la pregunta y esto fue lo que mejor se me ocurrió.

Tengo el siguiente problema:

1.- Creé un método que me trae los tipos de tela de cada ropa, en el modelo ropa tengo esto:

def tipo_de_tela     Tela.where("id = #{self.tela_id}").first.nombre if self.tela_id end 

al llamarlo desde la consola, me trae el tipo de tela.

irb(main):004:0> ropa = Ropa.find(2)   Ropa Load (1.6ms)  SELECT  "ropas".* FROM "ropas" WHERE "ropas"."id" = $  1 LIMIT $  2  [["id", 2], ["LIMIT", 1]] => #<Ropa id: 2, nombre: "camisa", created_at: "2019-09-06 12:47:41", updated_at: "2019-09-06 12:47:41", tela_id: 2> irb(main):005:0> ropa.tipo_de_tela   Tela Load (2.1ms)  SELECT  "telas".* FROM "telas" WHERE (id = 2) ORDER BY "telas"."id" ASC LIMIT $  1  [["LIMIT", 1]] => "seda" 

Al hacer una consulta join en el modelo de maestros, para esa misma ropa:

def self.trae_uno(m_id)     self.         select("maestros.id, ropas.nombre ropa, ropas.tipo_de_tela, colors.nombre color")         .joins(:ropa, :color)         .where(id: m_id) end 

Donde m_id = 2

ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR:  no existe la columna ropas.tipo_de_tela LINE 1: SELECT  maestros.id, ropas.nombre ropa, ropas.tipo_de_tela, ...                                                 ^ : SELECT  maestros.id, ropas.nombre ropa, ropas.tipo_de_tela, colors.nombre color FROM "maestros" INNER JOIN "ropas" ON "ropas"."id" = "maestros"."ropa_id" INNER JOIN "colors" ON "colors"."id" = "maestros"."color_id" WHERE "maestros"."id" = $  1 LIMIT $  2): 

¿Alguna idea de como puedo salir de este atolladero?

Problema relacional de un modelo de negocio para un laboratorio de análisis clinico

Tengo una duda con respecto para resolver este problema relacional:

Tengo una catalogo de una lista de varios tipos de estudios, éste contiene los atributos: nombre del estudio, precio, tiempo de realización de estudio y referencias(un dato numérico de referencia de lo normal que debe ser, dependiendo el análisis).Y con estos mismos datos tengo que hacer un grupo de estudios o paquetes que debe tener otros precios y tiempos de realización, esos paquetes el administrador se encargará de hacerlos. Entonces una vez que el paciente desee un estudio o paquete de estudio ¿Cómo podría relacionarlo con la tabla pedidos?

Espero que me haya dado a entender. gracias de antemano

Problema com eventos no modelo MVC

Estou tentando fazer um modelo MVC porém estou com problemas em como pegar o que é digitado pelo usuario e adicionar um evento ao meu bottão pelo meu controller:

minha view:

public class ViewLogin extends JFrame {      private Container con;       private static final int FRAME_WIDTH = 400;      static final int FRAME_HEIGHT = 350;       static final int FRAME_X_ORIGIN = 150;      static final int FRAME_Y_ORIGIN = 150;       static final int BUTTON_WIDTH = 90;      static final int BUTTON_HEIGHT = 30;      private JPanel Logo;     private JPanel Items;     private JPanel Footer;     private JLabel label1,label2;     private JTextField login;     private JPasswordField password;     private JButton entrar;     private JButton registrar;     /**      * Create the frame.      */     public ViewLogin() {         con=getContentPane();         //Set the frame properties         setSize         (FRAME_WIDTH, FRAME_HEIGHT);        // setResizable    (false);         setTitle        ("market v1");         setLocation     (FRAME_X_ORIGIN, FRAME_Y_ORIGIN);         setResizable(false);         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         setLayout(new FlowLayout());          setLogin(new JTextField("",10));         setPassword(new JPasswordField("",10));           Items = new JPanel(new GridLayout(3,1));         setEntrar(new JButton("Entrar"));         getEntrar().setBounds(100, 285, BUTTON_WIDTH, BUTTON_HEIGHT);           registrar = new JButton("Registrar");         registrar.setBounds(195, 285, BUTTON_WIDTH, BUTTON_HEIGHT);         label1 = new JLabel();         label1.setText("Username:");         label2 = new JLabel();         label2.setText("Password:");         Items.add(label1);         Items.add(getLogin());         Items.add(label2);         Items.add(getPassword());         Items.add(getEntrar());         Items.add(registrar);         add(Items,BorderLayout.CENTER);         setVisible(true);     }     public JTextField getLogin() {         return login;     }     public void setLogin(JTextField login) {         this.login = login;     }     public JPasswordField getPassword() {         return password;     }     public void setPassword(JPasswordField password) {         this.password = password;     }     public JButton getEntrar() {         return entrar;     }     public void setEntrar(JButton entrar) {         this.entrar = entrar;     }      public void adicionarOuvinteLogin (ActionListener ouvinte) {               this.entrar.addActionListener(ouvinte);               this.registrar.addActionListener(ouvinte);     } } 

meu controller:

public class ControllerLogin {      //view      ViewLogin loginView;     FuncionarioDAO funcionario;      public  ControllerLogin() {         loginView = new ViewLogin();     }        // getters and setters do controller     public ViewLogin getLoginView() {         return loginView;     }      public void setLoginView(ViewLogin loginView) {         this.loginView = loginView;     }    } 

eu queria chamar o meu metodo de validação pelo o meu controller pegando os dados da minha view:

meu metodo:

public boolean Autenticar(String usuario, String senha) {         PreparedStatement ps = null;         ResultSet rs = null;         String stringAutenticar = "SELECT * from usuario u  WHERE u.login = ?";         try {             ps = con.prepareStatement(stringAutenticar);             ps.setString(1, usuario);             rs = ps.executeQuery();             if (rs.next()) {                 if (BCrypt.checkpw(senha, rs.getString("senha"))) {                     JOptionPane.showMessageDialog(null,"Hello, Welcome to Javatpoint.");                       return true;                 }             }             return false;         } catch (SQLException ex) {             ex.printStackTrace();             return false;         } finally {             try {                 rs.close();                 ps.close();             } catch (SQLException e) {                 // TODO Auto-generated catch block                 e.printStackTrace();             }         }     } 

Recuperar valores de objeto de un modelo django

Tengo un modelo Django que tiene una serie de campos, y en una función a la que llamo enviándole uno de estos campos, en este caso el campo llamado code, intento recuperar el resto para realizar algunos cálculos pero me dice que no existen.

`from models import Registros def obtener_longitud(codigo):     obj = Registros.objects.distinct().filter(code=codigo)     long1 = obj.conduits_long_dm     long2 = obj.conduits_long2_dm     valor = float(long1) + float(long2)     return str(valor)` 

Me devuelve el siguiente error:

 `long1 = obj.conduits_long_dm AttributeError: 'QuerySet' object has no attribute 'conduits_long_dm'` 

Agregar expresión regular para validar email en un modelo de mongoose

Estoy intentando agregar una expresión regular y forme parte de las validaciones de mongoose y mongoose-unique-validator sin embargo no encuentro la forma de agregarlo. Lo podría hacer con node pero me gustaría tener todo centralizado. Quiero agregar una expresión regular de correo electrónico. Este es mi modelo

import mongos from 'mongoose' import validator from 'mongoose-unique-validator'   const schema = new mongos.Schema({      personal_data: {         name: {              type      : String,              required  : [ true, 'El nombre es necesario' ],              maxlength : [ 50, 'El nombre no puede exceder los 50 caracteres'],             minlength : [ 3, 'El nombre debe contener 3 o más caracteres']          },         last_name:  {              type      : String,              required  : [ true, 'El apellido es necesario' ],              maxlength : [ 100, 'El apellido no puede exceder los 50 caracteres'],             minlength : [ 3, 'El apellido debe contener 3 o más caracteres'],         },         user_name:  {              type: String,              unique    : [ true, 'El usuario está duplicado' ],              required  : [ true, 'El usuario es necesario' ],              maxlength : [ 25, 'El usuario no puede exceder los 25 caracteres'] },         email: {              type      : String,              unique    : [ true, 'El correo está duplicado'],              required  : [ true, 'El correo es necesario' ],              maxlength : [ 100, 'El correo no puede exceder los 100 caracteres'] },         gender:     { type: Number, maxlength: 1 }     },      company_data: {         role          : { type: mongos.Schema.Types.ObjectId, ref: 'Role' },         area          : { type: mongos.Schema.Types.ObjectId, ref: 'Area'  },         permissions: [{             module: { type: mongos.Schema.Types.ObjectId, ref: 'Module' },             chmod:  { type: String, min: 1, max: 5, default: 'r' }         }]      },     engine_data: {         password:   { type: String },         last_login: { type: Date },         addedBy:   { type: String },         addedDate: { type: Date, default: Date.now },         modification  : [{             _id       : false,             user      : { type: mongos.Types.ObjectId, ref: 'User' },             date      : { type: Date, default: Date.now },             updated   : { type: Array }         }]     } }, { collection: 'users' })  schema.plugin( validator, {  message: 'Ya existe el correo o ID {VALUE} en la base de datos' } )  const UserModel = mongos.model('User', schema )  export default UserModel 

me imagino algo así

email: {              type      : String,              unique    : [ true, 'El correo está duplicado'],              required  : [ true, 'El correo es necesario' ],              maxlength : [ 100, 'El correo no puede exceder los 100 caracteres'],             regex     : function( value ) {               var re = /^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$  /;               return re.test(String(value).toLowerCase());             }  }, 

No tengo idea de hecho si está en la capabilidad de mongoose

Agradezco toda ayuda

Como gravar um modelo Card contente vários itens em CakePHP2.x

Estou tentando gravar os itens de um carrinho em um modelo Card eu consigo obter os itens do carrinho passando o id da sessão do usuário, mas gostaria de saber como gravar em itens em associados a Orders e OrderProducts uando CakePHP2.x, segue o método na controller.

  public function payment_free($  product_id = null){      $  this->__verifySecurity( Group::CLIENTE );     if( $  product_id ){          //$  product_id = base64_decode($  product_id);         $  this->loadModel('Cart');         $  carts = $  this->Cart->__getCartsInSession($  this->Session->id());          $  this->loadModel('Product');         $  product = $  this->Order->OrderProduct->Product->__getProduct($  product_id);          $  method_id = Method::PRODUTO_ZERADO;          $  infoPayment = [             Method::PRODUTO_ZERADO => 'Produto Zerado',             Method::CUPOM_100_PORCENTO => 'Cupom 100%'         ];          $  data = [];         $  data['Order']['approved']  = date('Y-m-d H:i:s');         $  data['Order']['client_id'] = $  this->Auth->user('client_id');         $  data['Order']['method_id'] = $  method_id;         $  data['Order']['payment']   = $  infoPayment[$  method_id];         $  data['Order']['status']    = $  this->Order->Payment->getStatusAprovado();         $  data['Order']['value']     = '0.00';         $  data['Order']['value_discount'] = '0.00';         $  data['Order']['sessionid'] = $  this->Session->id();          $  data['OrderProduct'][0]['product_id'] = $  product_id;         $  data['OrderProduct'][0]['amount'] = 1;         $  data['OrderProduct'][0]['value'] = '0.00';         $  data['OrderProduct'][0]['discount'] = '0.00';          if( $  this->Order->saveAll($  data) ){             $  this->Session->setFlash('Curso Grátis obtido com sucesso!', 'site/popup-success');             $  this->__clearCart($  this->Session->id());             $  this->__clearTicket();             return $  this->redirect(array('controller'=>'virtual_rooms','action' => 'mycourses', 'prefixes' => false));         }         else{             $  this->Session->setFlash('Não foi possível obter o curso grátis!', 'site/popup-error');             return $  this->redirect( $  this->referer() );         }     }     else{         $  this->Session->setFlash('Não foi possível identificar o curso desejado!', 'site/popup-error');         return $  this->redirect( $  this->referer() );     } }