我正在为我的Django项目编写一个视图生成器。我有大量来自旧版应用程序的模型(约150个模型),所有模型都需要相同的基本CRUD操作(显然,仅提供Admin访问权限还不够)。
因此,我正在编写一个生成器,该生成器将为每个模型返回5个视图,当然每个视图都可能具有大量选项,并且我正在尝试为生成器定义合理的API /默认参数格式。
我目前的发电机:
def generate_views(model_class, **kwargs):
"""
For a given model, returns a dict of generic class-based views
"""
###
# Forms
# Optionally generate form classes if not already provided
###
# Append these fields with either "create_" or "update_" to have them only
# apply to that specific type of form
form_override_args = ['fields', 'exclude', 'form_method', 'form_class',
'form_layout', 'widgets', 'media_css', 'media_js']
if 'form_class' not in kwargs and 'create_form_class' not in kwargs:
create_form_kwargs = kwargs.copy()
for arg in …Run Code Online (Sandbox Code Playgroud) 我正在使用django-haystack,并且尝试实现一种将页码附加到pdf链接的方法,以便在特定页面中打开它。我的目标是在找到第一个匹配项的页面中打开pdf。我知道命中在文档中的位置以及页面更改的位置。例如,我知道第一个命中从字符2067开始,第二页在字符3000处更改,因此我必须在第二页打开pdf。
我的问题是:我怎样才能得到该函数的结果,该函数可以找到应打开pdf并呈现它的页面的编号?
我认为结果应该是这样,<a href="{% static 'img/sample.pdf#page={{ pageNumber }}' %}">但我愿意接受任何其他建议。
附言:我不是要您解决我的问题。我想提出建议或进行有建设性的讨论,因为我是django的新手。
先感谢您
编辑
因此,经过研究,我做了以下工作。我发现荧光笔类具有查找匹配位置的功能。我在该类中添加了一个吸气剂以获得位置(我将在以后进行更改。现在,我想看看它是否按照我认为的方式工作)。然后在我的views.py文件中添加以下内容
from django.shortcuts import render
from haystack.utils.highlighting import Highlighter
def getPage(request):
pos = Highlighter.getPos()
print (pos)
return render(request, 'search/_result_object.html', {'pos': pos})
Run Code Online (Sandbox Code Playgroud)
在我的html中我添加了这个
<ul>
{% for element in pos %}
<li>{{ element }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
只是打印位置,看看一切正常。但是列表为空,这意味着我没有结果。也许有些东西没有按照我认为的方式工作。有任何想法吗?
编辑#2
我认为不可能从荧光笔获取位置,因为我没有实际的荧光笔对象来使用吸气剂获取位置。
还有其他方法可以在荧光笔和视图之间传递参数吗?我设法在我的视图中获取了查询词,但是我没有找到查询词的文本块,也没有全文来再次搜索该位置。另外,我认为当程序扩展时,这种方法会很慢。
我正在开发一个 python 项目,该项目将具有单独的可分发部分。
我已经能够通过制作命名空间包来实现我的部分目标。我有“sub1”和“sub2”,都在命名空间“lvl1”中。我可以使用“pip install -e”或python setup.py develop. 我可以用import lvl1.sub1和导入它们import lvl1.sub2。
但是,该项目非常庞大,并且需要嵌套命名空间。我想import lvl1.lvl2.sub1和import lvl1.lvl2.sub2。所以两个子包都在同一个命名空间(“lvl2”)中,它本身在一个命名空间(“lvl1”)中。
所需的概念结构:
lvl1/
lvl2/
sub1/
code.py
more_code.py
...
sub2/
code.py
...
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点以及如何做到这一点?
这是使用python版本3.8启动jupyter笔记本时的详细错误
File "c:\users\kokat\appdata\local\programs\python\python38\lib\runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\kokat\appdata\local\programs\python\python38\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\kokat\AppData\Local\Programs\Python\Python38\Scripts\jupyter-notebook.EXE\__main__.py", line 9, in <module>
File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\jupyter_core\application.py", line 266, in launch_instance
return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\traitlets\config\application.py", line 657, in launch_instance
app.initialize(argv)
File "<c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\decorator.py:decorator-gen-7>", line 2, in initialize
File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\traitlets\config\application.py", line 87, in catch_config_error
return method(app, *args, **kwargs)
File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\notebook\notebookapp.py", line 1628, in initialize
self.init_webapp()
File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\notebook\notebookapp.py", line 1407, in init_webapp
self.http_server.listen(port, self.ip)
File "c:\users\kokat\appdata\local\programs\python\python38\lib\site-packages\tornado\tcpserver.py", line 144, in listen
self.add_sockets(sockets) …Run Code Online (Sandbox Code Playgroud) 所以我store_navbar有时加载有时没有加载。我正在使用Django 1.7。我使用片段缓存在中加载类别navbar。
{% load cache %}
{% cache CACHE_DEFAULT_TIMEOUT store_navbar store.id %}
{% include template_root|add:"navbar/categories.html" %}
{% endcache %}
Run Code Online (Sandbox Code Playgroud)
我的缓存超时变量是:
CACHE_DEFAULT_TIMEOUT = 86400
Run Code Online (Sandbox Code Playgroud) 我有一些我正在尝试分析的现有代码。我可以通过@profile使用kernprof添加装饰器来成功地排列配置文件类方法。
有没有一种通用的方法来分析类实例化?我有几个类具有非常复杂的继承结构。当我尝试分析它们的 init 函数时,我得到如下信息:
Line # Hits Time Per Hit % Time Line Contents
==============================================================
179 def __init__(self, data):
180 1 8910739.0 8910739.0 100.0 super().__init__(data)
181 1 10.0 10.0 0.0 self.mortgage_rate = 5.2 # rate in percentage
Run Code Online (Sandbox Code Playgroud)
这有点没用,因为我不知道__init__正在调用什么实际的父函数(这个类有 2 个父级,每个父级都有一个或多个父级)。
有什么办法可以做得更好吗?例如,有没有办法自动潜入每条线,并分析它调用的线(深度有限)?
我是一名对基准测试不感兴趣的开发人员,我正在尝试决定是否应该使用 Flask 还是 FastAPI 来构建一些 Python/Vue 项目。我在网上看到有关 FastAPI 如何比 Flask 更快的内容,因为 Flask 是单线程或类似的东西,而 FastAPI 是异步的,但显然最近 Flask 添加了异步路由,所以现在我想知道 FastAPI 是否仍然是(?) 比 Flask 更快。
有人做过比较 FastAPI 和 Flask 异步路由的基准测试吗?当我搜索谷歌时我找不到任何东西。
我正在尝试按照教程创建博客网站 ( http://tutorials.jumpstartlab.com/projects/blogger.html ),但是在执行这些步骤时我遇到了一些错误。我创建了一个空的存储库https://github.com/khpeek/jumpstart-blogger并希望将代码从~/blogger目录推送到它。我尝试了以下命令:
kurt@kurt-ThinkPad:~/blogger$ git init
Reinitialized existing Git repository in /home/kurt/blogger/.git/
kurt@kurt-ThinkPad:~/blogger$ git add .
kurt@kurt-ThinkPad:~/blogger$ git commit -m "first blogger commit"
On branch master
nothing to commit, working directory clean
kurt@kurt-ThinkPad:~/blogger$ git remote add origin git@github.com:khpeek/jumpstart-blogger.git
fatal: remote origin already exists.
Run Code Online (Sandbox Code Playgroud)
首先让我感到困惑的是“工作目录清理”警告,因为目录中有内容:
kurt@kurt-ThinkPad:~/blogger$ ls
app config db Gemfile.lock log Rakefile test vendor
bin config.ru Gemfile lib public README.rdoc tmp
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么我会收到“工作目录干净”错误?(也许还有随后的“致命:远程源已经存在”错误)?
PS 我知道 .gitignore 文件在这里很重要。其内容如下:
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
# …Run Code Online (Sandbox Code Playgroud) python ×6
django ×3
caching ×1
fastapi ×1
flask ×1
git ×1
github ×1
inheritance ×1
memcached ×1
namespaces ×1
package ×1
python-3.x ×1
setuptools ×1
tornado ×1