Aprende cómo Django escribe views.py en el libro.
¿De dónde viene? Django. ¿atajo? ¿importar? ¿Redirigir? get_object_or_404
¿Desde dónde? django.forms.modelos? ¿importar? Modelo form_factory
¿Dónde? django.aplicaciones? ¿importar? Aplicación
¿Desde dónde? django.views.generic.base? ¿importar? PlantillaRespuestaMixin,? Perspectiva
¿Desde dónde? django.views.generic.list? ¿importar? Vista de lista
¿Desde dónde? django.views.generic.edit? ¿importar? Crear vista, actualizar vista, eliminar vista
¿Dónde? Tirantes. ¿vista? ¿importar? Iniciar sesiónRequiredMixin,? Requisitos mínimos de permiso
¿Desde dónde? Tirantes. ¿vista? ¿importar? CsrfExemptMixin,? jsonrequestsresponsemixin
¿Desde dónde? . ¿modelo? ¿importar? ¿ciertamente? módulo,? Contenido
¿De dónde viene? . ¿hoja? ¿importar? Colección de módulos
¿De dónde viene? django.db.modelos? ¿importar? Contar
¿Desde dónde? . ¿modelo? ¿importar? Sujetos
¿De dónde? django.views.generic.detalle? ¿importar? Vista detallada
¿Desde dónde? alumno. ¿hoja? ¿importar? Formulario de inscripción al curso
#?Crear? ¿su? ¿Punto de vista? para ti.
¿Clase? OwnerMixin(objeto):
def? get_query set(self):
qs? =?super(propietario mínimo,?auto). get_queryset()
¿Regresión? Filtro QS (propietario = self . request . user)
¿Clase? OwnerEditMixin(objeto):
def? form_valid (self, ? formulario):
Formulario. Ejemplo. ¿dueño? =?Yo. preguntar. Usuario
¿Volver? super(PropietarioEditMixin, ? self).
form_valid (formulario)
¿Clase? OwnerCourseMixin(OwnerMixin, ?LoginRequiredMixin):
¿Modelo? =?Curso
Campos? =?['Tema',? título',? ¿Babosas? Descripción general ‘]
¿Success_url? =?reverse_lazy(‘Administrar lista de cursos‘)
¿Ir a clase? OwnerCourseEditMinxin(OwnerCourseMixin, ?OwnerEditMixin):
¿Campos? =?['Tema',? título',? ¿Babosas? Descripción general ‘]
¿Success_url? =?reverse_lazy('Administrar lista de cursos')
¿Nombre de la plantilla? =?cursos/administrar/curso/formulario html
¿Clase? ManageCourseListView(OwnerCourseMixin, ? ListView):
¿Nombre de la plantilla? =?cursos/administrar/curso/lista html
¿Clase? CourseCreateView(permissionrequiredmin,
OwnerCourseEditMinxin,
CreateView):
¿Se requiere permiso? =?courses.add_course
¿Tomar una clase? CourseUpdateView (permissionrequiredmin,
OwnerCourseEditMinxin,
UpdateView):
¿Se requiere permiso? =?'cursos .cambiar_curso'
¿Clases? CourseDeleteView (permissionrequiredminix,
OwnerCourseMixin,
eliminar vista):
¿Nombre de la plantilla? =?cursos/administrar/curso/eliminar .html
success_url? =?reverse_lazy('Administrar lista de cursos')
¿Necesita permiso? =?cursos.delete_course
¿Clase? CourseModuleUpdateView(TemplateResponseMixin, ? Ver):
¿Nombre de la plantilla? =?cursos/manage/module/formset html
¿Por supuesto? =?Nadie
definitivamente? get_formet(self, ?data=None):
¿Regresión? ModuleFormSet(instancia = self . curso,
datos = datos)
def? Despacho(self,?request,?pk):
¿Curso de autoaprendizaje? =?get_object_or_404 (por supuesto, ?id=pk, ?owner=request.user)
¿Regresión? super(CourseModuleUpdateView, ? yo).
despacho(solicitud,?pk)
def? get(self, ?request, ?*args, **quart):
¿Formset? =?self.get_formset()
¿Regresión? self . render _ to _ respuesta ({'curso': curso de autoaprendizaje,
formSet": ? formset})
def ? publicar (self, ? solicitud, ?* args, * * cuarto):
formset? =?self.get_formset(data = request.post)
if? formset.save()
return("administrar lista de cursos")
return ? render_to_response({'curso': curso de autoaprendizaje,
Formset":?formset})
¿Clase? ContentCreateUpdateView(TemplateResponseMixin, ? Ver):
¿Módulo? =?Ninguno
¿Modelo? =?Nadie
obj? =?Nadie
¿Nombre de la plantilla? =?cursos/manage/content/form .html
def? get_model(self,? nombre del modelo):
si? ¿Nombre del modelo? ¿existir? 【'texto',? video',? imagen',? Archivo "]:
¿Regresión? apps.get_model(app_label='cursos',
model_name=model_name)
¿Regresión? Ninguna persona
def ?get_form(self, ?model?*args, **quart):
form ? = ?modelform_factory(model, ?exclude = ['propietario ',
Orden ',
Creado',
Actualizado'])
¿Devolver formulario(*args,? * *cuarto)
def ? despacho(self, ?request, ?module_id, ?model_name ?id = Ninguno):
módulo propio ? = ?get_object_or_404(módulo, ?
id = ID del módulo, p>
curso__owner=request.user)
¿Automodelo? =?self.get_model (nombre del modelo)
if ?id:
self. obj?=?get_object_or_404(self.model,?id=id,?owner=request.user)
return ? super(ContentCreateUpdateView, ? self).
programar(solicitud,?module_id,?model_name?id)
def? get(self, ?request, ?moduleid, ?modelname?id=None):
¿Formulario? =?self.get_form(self.model,?instance=self.obj)
¿Regresión? self . render_to_response({'form:'?form?object':?self.obj})
def ?publish(self, ?request, ?moduleid, ?modelname?id = Ninguno): p>
¿Formulario? =?self.get_form(self.model,
instancia=self.obj,
data=request.posts,
file = request.file)
if? form.is_valid():
obj?=?form.save(commit=False)
p>Propietario ?=?usuario
obj.save()
Imprimir? amp amp amp amp amp amp
¿Qué pasa si? ¿Imprimir?
object.create(module=self.module,
item=obj)
Imprimir? p>
return('modulecontent-list) ', ?self.module.id)
return ?self . render_to_response({'form: '?form?object' :? self.obj})
¿Clase? ContentDeleteView(vista):
def? publicar(self, ?solicitud, ?id):
¿Contenido? =?get_object_or_404(content,
id=id,
module__course__owner=request.user)
¿Módulo? =?Contenido. Módulo
content.item.delete()
Contenido.
eliminar()
¿Regresión? Redirect('Lista de contenidos del módulo', ? module.id)
¿Clase? ModuleContentListView(TemplateResponseMixin, ? view):
¿Nombre de la plantilla? =?cursos/manage/module/content_list .html
def? get(self,?request,?module_id):
¿Módulo? =?get_object_or_404(módulo,
id=moduleid,
curso__propietario=request.user)
¿Regresión? self . render _ to _ respuesta ({'módulo': módulo})
¿Clase? ModuleOrderView(csrfexamptmixin,
JsonRequestResponseMixin,
vista):
def? publicar(self, ?request):
¿Para qué? identificación,? ¿Orden? ¿existir? self.request_json.items():
módulo objetos .filtro (id = id,
curso__propietario = request.user). actualizar(pedido=pedido)
¿Volver? self . render_JSON_response({'saved': ok'})
¿Clase? ContentOrderView(csrfexamptmixin,
JsonRequestResponseMixin,
vista):
def? publicar(self, ?request):
¿Para qué? identificación,? ¿Orden? ¿existir? self.request_json.items():
Contenido. objeto. filtro(id=id,
módulo__curso__propietario=solicitud.usuario)
.
actualizar(pedido=pedido)
¿Volver? self . render_JSON_response({'saved': ok'})
¿Clase? vista de lista del curso (TemplateResponseMixin, ? vista):
¿Modelo? =?Curso
¿Nombre de la plantilla? =?cursos/curso/lista .html‘
def? get(self, ?request, ?subject=None):
¿Asunto? =?Subject.objects.annotate(
total _ cursos = Count('cursos')
)
¿Cursos? =?Course.objects.annotate(
total _ módulos = Count('módulos')
)
¿Si? Tema:
¿Tema? =?get_object_or_404(subject,?slug=subject)
¿Curso? =?cursos.filter(subject=subject)
¿Imprimir? '************',?sujeto? ¿curso? Asunto
¿Regresar? self . renderizar _ a _ respuesta ({'sub gets: asunto,
topic": ? asunto,
'curso': curso})
Clase ? Vista detallada del curso (vista detallada):
¿Modelo? =?Curso
¿Nombre de la plantilla? =?cursos/curso/detalle.html
def? (self, ? *Quart):
Context ? = ?super(CourseDetailView,
self). (
inicial = {'curso:'?self.object})
¿Entorno de retorno