Access documents in the middle directory

0

I have a form that uploads several documents, but at the time of wanting to use them, I can not access them or the admin, I get an error 404, but the document is loaded to media_cdn. The project was made with django 1.10

Path of media_cdn     Directory / media_cdn

Project route     Directory / project / project / settings.py

LOGIN_REDIRECT_URL = reverse_lazy('solicitud:solicitud_listar')
LOGOUT_REDIRECT_URL = reverse_lazy('login')

STATIC_URL = '/static/'
MEDIA_URL = '/media/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_cdn")

directory of application URLs

directorio/project/apps/solicitud/urls.py

    # -*- coding: utf-8 -*-
from django.conf.urls import url
from django.conf import settings
from django.conf.urls.static import static

import views

app_name = 'solicitud'

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'registrar_solicitud/$', views.AddSolicitud.as_view(), name='datos_candidato'),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

If I added the debug after the URLs pratrones

mi modelo

def upload_location_curp(instance, filename):
    filename = "curp %s %s.pdf" % (instance.nombre, instance.apellidos)
    return "%s %s/%s" % (instance.nombre, instance.apellidos, filename)


def upload_location_acta(instance, filename):
    filename = "acta_%s %s.pdf" % (instance.nombre, instance.apellidos)
    return "%s %s/%s" % (instance.nombre, instance.apellidos, filename)


def upload_location_domicilio(instance, filename):
    filename = "domicilio_%s %s.pdf" % (instance.nombre, instance.apellidos)
    return "%s %s/%s" % (instance.nombre, instance.apellidos, filename)


def upload_location_titulo(instance, filename):
    filename = "titulo_%s %s.pdf" % (instance.nombre, instance.apellidos)
    return "%s %s/%s" % (instance.nombre, instance.apellidos, filename)


class Solicitud(models.Model):
    nombre = models.CharField(max_length=50)
    apellidos = models.CharField(max_length=70)
    email = models.EmailField(unique=True)

    sexo = models.CharField(max_length=9, choices=SEXO_CHOICES)
    fecha_nacimiento = models.DateField()
    curp = models.CharField(max_length=18, unique=True)
    curpFoto = models.FileField(upload_to=upload_location_curp, null=True, blank=True)

    pais_origen = models.CharField(max_length=30, default="México")
    lugar_nacimiento = models.CharField(max_length=100)
    acta_nacimiento = models.FileField(upload_to=upload_location_acta, null=True, blank=True)

    domicilio = models.CharField(max_length=120)
    codigo_postal = models.CharField(max_length=5)
    comprobante_domicilio = models.FileField(upload_to=upload_location_domicilio, null=True, blank=True)
    telefono = models.CharField(max_length=20)

    escuela_procedencia = models.CharField(max_length=50)
    programa_solicitado = models.CharField(max_length=50, choices=PROGRAMA_SOLICITADO_CHOICES, default=MAS_ADMIN)
    titulado = models.CharField(max_length=11, choices=ESTADO_TITULACION_CHOICES, default=YA_TITULADO)
    titulacion_creditos = models.CharField(max_length=2, choices=TITULACION_CREDITOS_CHOICES, default=NO)
    titulo = models.FileField(upload_to=upload_location_titulo, null=True, blank=True)

    def __unicode__(self):
        return u'Solicitud id: {}'.format(self.id)

My form

class SolicitudForm(forms.ModelForm):
    class Meta:
        model = Solicitud
        fields = [
        'nombre',
        'apellidos',
        'email',

        'fecha_nacimiento',
        'acta_nacimiento',
        'sexo',
        'curp',
        'curpFoto',
        'pais_origen',
        'lugar_nacimiento',
        'domicilio',
        'comprobante_domicilio',
        'codigo_postal',
        'telefono',

        'escuela_procedencia',
        'programa_solicitado',
        'titulado',
        'titulacion_creditos',
        'titulo',
    ]

        labels = {
        'nombre': 'Nombre(s)',
        'apellidos': 'Apellidos',
        'email': u'Correo Electrónico',
        'fecha_nacimiento': 'Fecha de Nacimiento',
        'acta_nacimiento': 'Acta de nacimiento',
        'sexo': 'Sexo',
        'curp': 'CURP',
        'curpFoto': 'Comprobante de la CURP',
        'pais_origen': 'Pais de origen',
        'lugar_nacimiento': 'Lugar de Nacimiento',
        'domicilio': 'Domicilio',
        'codigo_postal': u'Código Postal',
        'comprobante_domicilio': ' Comprobante de domicilio',
        'telefono': u'Teléfono',

        'escuela_procedencia': 'Escuela de Procedencia',
        'programa_solicitado': 'Programa de Estudios Solicitado',
        'titulado': u'Estado de su Titulación',
        'titulacion_creditos': u'Titulación por créditos de Posgrado',
        'titulo': u'Título de licenciatura',
    }

        widgets = {
        'nombre': forms.TextInput(attrs={'class': 'form-control'}),
        'apellidos': forms.TextInput(attrs={'class': 'form-control'}),
        'email': forms.TextInput(attrs={'class': 'form-control'}),

        'fecha_nacimiento': forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}),
        # 'fecha_nacimiento': forms.TextInput(attrs={'class': 'form-control'}),

        'sexo': forms.Select(attrs={'class': 'form-control'}),
        'curp': forms.TextInput(attrs={'class': 'form-control'}),

        'pais_origen': forms.TextInput(attrs={'class': 'form-control'}),
        'lugar_nacimiento': forms.TextInput(attrs={'class': 'form-control'}),
        'domicilio': forms.TextInput(attrs={'class': 'form-control'}),
        'codigo_postal': forms.TextInput(attrs={'class': 'form-control'}),
        'telefono': forms.TextInput(attrs={'class': 'form-control'}),

        'escuela_procedencia': forms.TextInput(attrs={'class': 'form-control'}),
        'programa_solicitado': forms.Select(attrs={'class': 'form-control'}),
        'titulado': forms.Select(attrs={'class': 'form-control'}),
        'titulacion_creditos': forms.Select(attrs={'class': 'form-control'}),

    }

and my view that calls the form

class AddSolicitud(CreateView):
    model = Solicitud
    form_class = SolicitudForm
    template_name = 'solicitud/solicitud_form.html'
    success_url = reverse_lazy('solicitud:home')
    
asked by Kuroi 02.03.2018 в 06:33
source

0 answers