首页>>后端>>Python->djangoviews怎么写(djangovue)

djangoviews怎么写(djangovue)

时间:2023-12-14 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关djangoviews怎么写的相关内容,希望对大家有所帮助,一起来看看吧。

Django怎么管理权限,views怎么写,模板又怎么写,求一个简单的代码,有帮助给100分

没有python本身那么方便的语句

需要自己在循环里加判断,比如这样:

.... do somthing ....

不过我还是建议尽量在模板里少做一些事情,模板毕竟不是用来提供计算的,只是一个展示用的框架而已。

Django中views如何设置全局变量

问题在于test = 1实际上是定义了一个局部变量test,它隐藏了全局作用域中的test变量。

要指明使用全局的test变量,需要使用global关键字。

from django.http import HttpResponse

test = 0

def a(request):

    global test

    test = 1

    return HttpResponse('view a: test = %d' % test)

    

def b(request):

    global test

    test += 1

    return HttpResponse('view b: test = %d' % test)

学一学书里的django是怎么写views.py的

from django.core.urlresolvers import reverse_lazy

from django.shortcuts import redirect, get_object_or_404

from django.forms.models import modelform_factory

from django.apps import apps

from django.views.generic.base import TemplateResponseMixin, View

from django.views.generic.list import ListView

from django.views.generic.edit import CreateView, UpdateView, DeleteView

from braces.views import LoginRequiredMixin, PermissionRequiredMixin

from braces.views import CsrfExemptMixin, JsonRequestResponseMixin

from .models import Course, Module, Content

from .forms import ModuleFormSet

from django.db.models import Count

from .models import Subject

from django.views.generic.detail import DetailView

from students.forms import CourseEnrollForm

# Create your views here.

class OwnerMixin(object):

    def get_queryset(self):

        qs = super(OwnerMixin, self).get_queryset()

        return qs.filter(owner=self.request.user)

class OwnerEditMixin(object):

    def form_valid(self, form):

        form.instance.owner = self.request.user

        return super(OwnerEditMixin, self).form_valid(form)

class OwnerCourseMixin(OwnerMixin, LoginRequiredMixin):

    model = Course

    fields = ['subject', 'title', 'slug', 'overview']

    success_url = reverse_lazy('manage_course_list')

class OwnerCourseEditMinxin(OwnerCourseMixin, OwnerEditMixin):

    fields = ['subject', 'title', 'slug', 'overview']

    success_url = reverse_lazy('manage_course_list')

    template_name = 'courses/manage/course/form.html'

class ManageCourseListView(OwnerCourseMixin, ListView):

    template_name = 'courses/manage/course/list.html'

class CourseCreateView(PermissionRequiredMixin,

                       OwnerCourseEditMinxin,

                       CreateView):

    permission_required = 'courses.add_course'

class CourseUpdateView(PermissionRequiredMixin,

                       OwnerCourseEditMinxin,

                       UpdateView):

    permission_required = 'courses.change_course'

class CourseDeleteView(PermissionRequiredMixin,

                       OwnerCourseMixin,

                       DeleteView):

    template_name = 'courses/manage/course/delete.html'

    success_url = reverse_lazy('manage_course_list')

    permission_required = 'courses.delete_course'

class CourseModuleUpdateView(TemplateResponseMixin, View):

    template_name = 'courses/manage/module/formset.html'

    course = None

    def get_formset(self, data=None):

        return ModuleFormSet(instance=self.course,

                             data=data)

    def dispatch(self, request, pk):

        self.course = get_object_or_404(Course, id=pk, owner=request.user)

        return super(CourseModuleUpdateView, self).dispatch(request, pk)

    def get(self, request, *args, **kwargs):

        formset = self.get_formset()

        return self.render_to_response({'course': self.course,

                                        'formset': formset})

    def post(self, request, *args, **kwargs):

        formset = self.get_formset(data=request.POST)

        if formset.is_valid():

            formset.save()

            return redirect('manage_course_list')

        return self.render_to_response({'course': self.course,

                                        'formset': formset})

class ContentCreateUpdateView(TemplateResponseMixin, View):

    module = None

    model = None

    obj = None

    template_name = 'courses/manage/content/form.html'

    def get_model(self, model_name):

        if model_name in ['text', 'video', 'image', 'file']:

            return apps.get_model(app_label='courses',

                                  model_name=model_name)

        return None

    def get_form(self, model, *args, **kwargs):

        Form = modelform_factory(model, exclude=['owner',

                                                 'order',

                                                 'created',

                                                 'updated'])

        return Form(*args, **kwargs)

    def dispatch(self, request, module_id, model_name, id=None):

        self.module = get_object_or_404(Module,

                                        id=module_id,

                                        course__owner=request.user)

        self.model = self.get_model(model_name)

        if id:

            self.obj = get_object_or_404(self.model, id=id, owner=request.user)

        return super(ContentCreateUpdateView, self).dispatch(request, module_id, model_name, id)

    def get(self, request, module_id, model_name, id=None):

        form = self.get_form(self.model, instance=self.obj)

        return self.render_to_response({'form': form, 'object': self.obj})

    def post(self, request, module_id, model_name, id=None):

        form = self.get_form(self.model,

                             instance=self.obj,

                             data=request.POST,

                             files=request.FILES)

        if form.is_valid():

            obj = form.save(commit=False)

            obj.owner = request.user

            obj.save()

            print id, ''

            if not id:

                print '****************'

                Content.objects.create(module=self.module,

                                       item=obj)

                print '****************'

            return redirect('module_content_list', self.module.id)

        return self.render_to_response({'form': form, 'object': self.obj})

class ContentDeleteView(View):

    def post(self, request, id):

        content = get_object_or_404(Content,

                                    id=id,

                                    module__course__owner=request.user)

        module = content.module

        content.item.delete()

        content.delete()

        return redirect('module_content_list', module.id)

class ModuleContentListView(TemplateResponseMixin, View):

    template_name = 'courses/manage/module/content_list.html'

    def get(self, request, module_id):

        module = get_object_or_404(Module,

                                   id=module_id,

                                   course__owner=request.user)

        return self.render_to_response({'module': module})

class ModuleOrderView(CsrfExemptMixin,

                      JsonRequestResponseMixin,

                      View):

    def post(self, request):

        for id, order in self.request_json.items():

            Module.objects.filter(id=id,

                                  course__owner=request.user).update(order=order)

        return self.render_json_response({'saved': 'OK'})

class ContentOrderView(CsrfExemptMixin,

                       JsonRequestResponseMixin,

                       View):

    def post(self, request):

        for id, order in self.request_json.items():

            Content.objects.filter(id=id,

                                   module__course__owner=request.user)\

                .update(order=order)

        return self.render_json_response({'saved': 'OK'})

class CourseListView(TemplateResponseMixin, View):

    model = Course

    template_name = 'courses/course/list.html'

    def get(self, request, subject=None):

        subjects = Subject.objects.annotate(

            total_courses=Count('courses')

        )

        courses = Course.objects.annotate(

            total_modules=Count('modules')

        )

        if subject:

            subject = get_object_or_404(Subject, slug=subject)

            courses = courses.filter(subject=subject)

        print '***********', subjects, courses, subject

        return self.render_to_response({'subjets': subjects,

                                        'subject': subject,

                                        'courses': courses})

class CourseDetailView(DetailView):

    model = Course

    template_name = 'courses/course/detail.html'

    def get_context_data(self, **kwargs):

        context = super(CourseDetailView,

                        self).get_context_data(**kwargs)

        context['enroll_form'] = CourseEnrollForm(

            initial={'course': self.object})

        return context

结语:以上就是首席CTO笔记为大家整理的关于djangoviews怎么写的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于djangoviews怎么写的相关内容别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/33356.html