Luego de poner los permisos correspondientes es necesario ejecutar el siguiente comando como Root para desactivar SELinux.
setenforce 0
Notas de un desarrollador para desarrolladores.
setenforce 0
app.filter('utf8_decode', function($sce) {
return function(strData) {
var tmpArr = []
var i = 0
var c1 = 0
var seqlen = 0
strData += ''
while (i < strData.length) {
c1 = strData.charCodeAt(i) & 0xFF
seqlen = 0
// http://en.wikipedia.org/wiki/UTF-8#Codepage_layout
if (c1 <= 0xBF) {
c1 = (c1 & 0x7F)
seqlen = 1
} else if (c1 <= 0xDF) {
c1 = (c1 & 0x1F)
seqlen = 2
} else if (c1 <= 0xEF) {
c1 = (c1 & 0x0F)
seqlen = 3
} else {
c1 = (c1 & 0x07)
seqlen = 4
}
for (var ai = 1; ai < seqlen; ++ai) {
c1 = ((c1 << 0x06) | (strData.charCodeAt(ai + i) & 0x3F))
}
if (seqlen === 4) {
c1 -= 0x10000
tmpArr.push(String.fromCharCode(0xD800 | ((c1 >> 10) & 0x3FF)))
tmpArr.push(String.fromCharCode(0xDC00 | (c1 & 0x3FF)))
} else {
tmpArr.push(String.fromCharCode(c1))
}
i += seqlen
}
return tmpArr.join('')
};
});
{{item.description | utf8_decode }}
#Relaciones en DetailView
class ProductoDetail(DetailView):
model = Product
template_name = "products/producto_detail.html"
def get_context_data(self, **kwargs):
context = super(ProductDetail, self).get_context_data(**kwargs)
context['pk'] = self.kwargs.get('pk') # Clave Primaria del producto actual
#Teniendo la clave primaria hacemos un query a la clase Existencias pasando el primary key de esta forma
context['existencias'] = Existencias.objects.all().filter(producto=self.kwargs.get('pk'))
return context
INSTALLED_APPS = [
...
'django_forms_bootstrap',
...
]
{% load bootstrap_tags %}
{{ form.as_p }}
Por:
{{ form|as_bootstrap }}
#importamos forms de nuestro amado django
from django import forms
from .models import Producto #importamos nuestro modelo
# Clase para nuestro formulario
class ProductoForm(forms.ModelForm):
#Charfield requerido y su etiqueta en el formulario será "Nombre"
nombre = forms.CharField(required=True, label="Nombre")
#Charfield opcional con etiqueta "Código"
code = forms.CharField(required=False, label="Código")
#Ejemplo de un textarea no requerido
descripcion = forms.CharField(
required=False,
widget=forms.Textarea,
label="Descripción"
)
class Meta:
model = Producto # Le asignamos nuestro modelo importado
fields = ['nombre', 'code', 'descripcion'] #Los campos en el form (los que estaban en views.py)
# the new bit we're adding
def __init__(self, *args, **kwargs):
super(ProductoForm, self).__init__(*args, **kwargs)
#al principio del archivo views.py from .forms import ProductoForm
class ProductoCreation(CreateView):
model = Product
success_url = reverse_lazy('productos:list'
#fields = ['nombre', 'code', 'descripcion'] # Esto ya no se usa acá
form_class = ProductoForm #aca le asignamos nuestra case que creamos en forms.py
success_url = reverse_lazy('products:list')
class ProductoUpdate(UpdateView):
model = Product
#fields = ['nombre', 'code', 'descripcion'] # Esto ya no se usa acá
form_class = ProductoForm #aca le asignamos nuestra case que creamos en forms.py
success_url = reverse_lazy('productos:list'
#Sin clases css campo = forms.ModelChoiceField(queryset=Modelo.objects.all(), label="Seleccionar")
#Con clases css
campo = forms.ModelChoiceField(queryset=Modelo.objects.all(), label="Seleccionar",
widget=forms.Select(
attrs={'class': 'clase_custom otra_clase'})
)