当前位置: 首页 > 网络应用技术

如何致电视图(django)

时间:2023-03-09 01:08:56 网络应用技术

  简介:许多朋友问有关Django如何调用视图的问题。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  有三种方法:

  1.在模板中的HTML文件中,包含此功能的JS文件直接嵌入HTML中。

  2.通过JS中的AJAX打开链接,例如/admin/url?key = value,然后keyvlaue = request.get.get.get.get('key',none)在admin.py中的url方法中获取此value,然后py进行一些处理后,返回html代码的一部分将此JS函数到JS,然后将其添加到JS中的页面中,而无需刷牙:$(“ #id”)。html(xmlhttp.responsetext);

  3.基本上与上述相同,适用于Ajax进行实施,但是在PY处理后返回的不是实质性的HTML,而是MSG指令。接收JS后,JS函数与AJAX相关。例如,JS函数。例如,if(xmlhttp.responsetext =='ok')fun();

  我希望你能够明白。

  直接在视图中导入相应的模型,然后调用模型中的参数或方法。您需要根据代码的特定情况灵活更改。

  Amway Django学习网站Django高级教程

  根据您的指导方法来看上面的图片,仅跑步视图就可以了

  但是,它不能在Django中使用。运行Django项目时,当前目录实际上是整个项目的根目录

  您可以在视图目录中使用无关OS,然后打印(OS.GetCWD())查看当前目录:

  当前目录打印是整个项目的根目录。我的是E:mypythonday51 ... blw:

  你在这里g:.... nnno:

  您必须在Anno目录中导入data_model.py。您是否必须带上应用名称才能输入子级目录?

  而且还有一个问题:在未来的开发中,它很可能在不同应用程序下具有同名模块或方法。例如,您在这里有三个应用程序,App01,App02,App03,这三个应用程序具有COMMON_MODEL。那么区别到底是什么?因此,最好将应用程序名称带到前面。

  但是真的想使用它,您可以使用:来自.common_model导入data_model

  [。]指当前文件的目录,该目录是相对路径导入的

  看来是否这样写是没有错误的。这是错误的吗?它应该是视图,对吗?

  来自django.core.urlresolvers import reververs_lazy

  来自django.shortcuts导入重定向,get_object_or_404

  来自django.forms.models导入modelform_factory

  来自django.apps导入应用程序

  从django.views.gneric.base导入templateresmixin,查看,查看

  来自django.views.gneric.list导入listView

  来自django.views.gneric.edit import createview,updateView,deleteview

  从括号中。视图导入登录MIXIN,许可Mixin

  从牙套中。

  从。模型导入课程,模块,内容

  来自.forms导入模块Formset

  从django.db.models进口计数

  来自.models导入主题

  来自django.views.gneric.detail导入详细信息

  来自学生。Forms导入课程enrollolform

  #在这里创建您的观点。

  class ownermixin(对象):

  def get_queryset(self):

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

  返回QS.Filter(所有者= seld.request.user)

  class eslowNitMixin(对象):

  def form_valid(self,form):

  form.instance.owner = self.request.user

  返回super(outereditmixin,self).form_valid(form)

  class ownerCoursemixin(ownermixin,loginrequiredmixin):

  模型=课程

  fields = ['主题','title','slug','概述']

  success_url = reverse_lazy('manage_course_list')

  class ownercourseeditminxin(ownererCoursemixin,eslowitMixin):

  fields = ['主题','title','slug','概述']

  success_url = reverse_lazy('manage_course_list')

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

  类ManageCourSelistView(OholderCoursemixin,ListView):

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

  班级CourseCreateaTeview(许可证

  ownercourseeditminxin,

  CreateView:

  许可证='courses.add_course'

  课程UpdateView(许可证

  ownercourseeditminxin,

  UpdateView:

  cermission_required ='courses.change_course'

  COURSELETEVIEW班级(许可证

  ownercoursemixin,

  Deleteview:

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

  success_url = reverse_lazy('manage_course_list')

  cermission_required ='courses.delete_course'

  coursemoduleupdateview(templateresponsemixin,查看):

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

  课程=无

  def get_formset(seld,data = none):

  返回moduleformset(instance = self.course,

  数据=数据)

  DEF调度(自我,请求,PK):

  self.course = get_object_or_404(课程,id = pk,所有者= request.user)

  返回超级(coursemoduleupdateview,self).dispatch(请求,PK)

  def获取(自我,请求,*args,** kwargs):

  formSet = self.get_formset()

  返回selder_to_response({'course':self.course,

  'FormSet':FormSet})

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

  formSet = self.get_formset(data = request.post)

  如果formset.is_valid():

  formSet.save()

  返回redirect('manage_course_list')

  返回selder_to_response({'course':self.course,

  'FormSet':FormSet})

  类ContentCreateupDateView(Templateresponsemixin,查看):

  模块=无

  模型=无

  obj =无

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

  def get_model(self,model_name):

  如果在['text',''视频','image','file'中中的model_name]:

  返回apps.get_model(app_label ='courses',

  model_name = model_name)

  没有返回

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

  form = modelm_factory(model,dubl = ['所有者',,

  '命令',

  “创建”,

  '更新'])

  返回表格(*args,** kwargs)

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

  self.module = get_object_or_404(模块,

  id = module_id,

  cousse __owner = request.user)

  self.model = self.get_model(model_name)

  如果ID:

  self.obj = get_object_or_404(self.model,id = id = id,所有者= request.user)

  返回super(contentCreateupDateView,self).dispatch(请求,module_id,model_name,id)

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

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

  返回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,

  实例= self.obj,

  data = request.post,

  文件= request.files)

  如果form.is_valid():

  obj = form.save(commit = false)

  obj.owner = request.user

  obj.save()

  打印ID,''

  如果不是ID:

  打印 '******************

  content.objects.create(模块= seld.module,

  项目= OBJ)

  打印 '******************

  返回redirect('module_content_list',self.module.id)

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

  类ContentDeleteview(视图):

  DEF帖子(自我,请求,ID):

  content = get_object_or_404(内容,内容,

  id = id,

  模块__course__owner = request.user)

  模块= content.module

  content.item.delete()

  content.delete()

  返回redirect('module_content_list',module.id)

  类ModulecontentListView(Templateresponsemixin,查看):

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

  def get(self,request,module_id):

  模块= get_object_or_404(模块,

  id = module_id,

  cousse __owner = request.user)

  返回selder_to_response({'module':module})

  类ModuleDorderView(CSRFEXEMPTMIXIN,

  jsonrequestresponsemixin,

  看法:

  def post(自我,请求):

  对于ID,请在self.request_json.items()中订购:

  module.objects.filter(id = id,

  course__owner = request.user).update(订单=订单)

  返回self.render_json_response({'saved':'ok'})

  类ContentOrderView(CSRFExemptMixin,

  jsonrequestresponsemixin,

  看法:

  def post(自我,请求):

  对于ID,请在self.request_json.items()中订购:

  content.objects.filter(id = id,

  模块__course__owner = request.user)

  .update(订单=订单)

  返回self.render_json_response({'saved':'ok'})

  COURSSELISTVIEW(Templateresponsemixin,查看):

  模型=课程

  template_name ='courses/course/list.html'

  def get(seld,请求,主题=无):

  主题= object.objects.annotate

  total_courtes = count('课程')

  治愈

  课程= course.objects.annotate(

  total_modules = count('模块')

  治愈

  如果主题:

  主题= get_object_or_404(主题,slug =主题)

  课程=课程.filter(主题=主题)

  打印“ ************”,主题,课程,主题

  返回self.render_to_response({'subjets':主题,

  “主题”:主题,

  “课程”:课程})

  coper coursedetailview(详细信息):

  模型=课程

  template_name ='课程/课程/详细信息html'

  def get_context_data(self,** kwargs):

  context = super(coursedetailview,

  self).get_context_data(** kwargs)

  context ['enroll_form'] = courseenrollform(

  初始= {'course':self.Object})

  返回上下文

  问题在于测试= 1实际定义了局部变量测试,该测试隐藏了全局范围中的测试变量。

  为了指示全局测试变量的使用,您需要使用全局关键字。

  来自django.http导入httpresponse

  测试= 0

  DEF A(请求):

  全球测试

  测试= 1

  返回httpresponse('查看a:test =%d'%测试)

  DEF B(请求):

  全球测试

  测试+= 1

  返回httpresponse('视图B:test =%d'%测试)

  结论:以上是CTO首席执行官提出的Django的全部内容,向您注明了Django如何调用视图。我希望这对每个人都会有所帮助。如果您仍然想了解有关此信息的更多信息,请记住收集并关注此网站。