【发布时间】:2019-10-06 01:13:12
【问题描述】:
这是获取EducationalRecord模型中所有记录的视图:
def all_education_resume(request):
RESUME_INFO['view'] = 'education'
educations_resume = EducationalRecord.objects.all().order_by('-created_date')
template = 'resumes/all_resume.html'
context = {'educations_resume': educations_resume, 'resume_info': RESUME_INFO}
return render(request, template, context)
现在,如果我想为其他模型(如工作简历、研究简历等)准确地编写此视图, 我必须单独查看另一个。 我的问题是:
如何查看所有这些请求,所以首先检查 请求然后做相关查询?如何控制 URL 在我看来请求?
我的另一个问题和我的第一个问题完全一样,不同之处在于:
必须在特定模板中呈现的控件视图。换句话说,在 第二个问题模板和视图之间的比例改为 视图与 url 的比例或如何创建模板 多个视图(例如,用于各种数据库的简历 简历,我有一个模板)然后,取决于哪个视图渲染, 模板输出不同。
我对这两个问题的实现如下:
- 我为每个请求写了一个视图!
- 在每个视图中,我设置了
RESUME_INFO['view']的值,然后我在一个模板页面中查看并指定了相应的模板。
这两个问题的最佳解决方案是什么?
【问题讨论】:
-
你可以看到
request.path,但是用同一个视图处理所有这些任务根本不是一个好主意。但是,您可以使用 cbvListView来删除大部分样板代码。 -
但是所有这些任务都是一样的!他们所有的区别都是他们的名字
model!我如何使用一个ListView来处理这些相同的任务? @WillemVanOnsem -
@mstafarahnama:你只需要写
class ModelAListView(ListView): model=MyModel template='some_templatefora.html',所以每个视图都是三行。通过使用统一的列表视图,您只会产生更多的麻烦,因为模板可能不同,最终您可能希望对某些列表进行一些访问控制。
标签: python django django-views django-urls django-2.0