Questions tagged «django»

Django是使用Python编写的开放源代码服务器端Web应用程序框架。它旨在减少创建复杂的数据驱动的网站和Web应用程序所需的工作量,并特别注重更少的代码,无冗余以及比隐式更显式。

25
没有名为django.core的模块
卸载旧的Django版本后,我已经更新到最新的Django版本1.0.2。但是现在当我运行django-admin.py时,出现以下错误。我该如何解决? Traceback (most recent call last): File "C:\Python25\Lib\site-packages\django\bin\django-admin.py", line 2, in <module> from django.core import management ImportError: No module named django.core
68 python  django 

4
如何在Django中使用Bootstrap?
我正在学习来自PHP的python和Django。这真的很令人兴奋,我很想将Bootstrap与Django一起使用来创建性感的网页。 据我了解(我正在他们网站上关注Django教程),Django使用了可以包含在settings.py文件中的“应用” 。我进行了快速搜索,找到了几个以启动程序为主题的应用程序,但对如何选择合适的应用程序一无所知。大多数人都使用标准的应用程序吗?我需要的是bootstrap.css和bootstrap.js文件。 我确定我可以手动将它们放置在我的根目录中,但是我会喜欢Django安装中的“全包”设置。


6
Django 1.5版:“ url”需要一个非空的第一个参数。语法在Django 1.5中已更改
我开始使用Django 1.5版,旧代码出现问题: <a href="{% url auto.views.viewpost post.slug %}"><h3>{{post.title}}</h3></a> 错误:“ url”需要一个非空的第一个参数。语法在Django 1.5中已更改,请参阅文档。文件: 值得注意的一项不推荐使用的功能是转向“新型” URL标签。在Django 1.3之前,诸如{%url myview%}之类的语法被错误解释(Django认为“ myview”是视图的文字名称,而不是名为myview的模板变量)。Django 1.3和更高版本引入了{%from future future}语法,以引入更正的行为,其中myview被视为变量。 这样做的结果是,如果您在模板中未使用{%将来的%加载URL,则需要将{%url myview%}之类的标签更改为{%url“ myview”%}。如果您使用的是{未来的%加载网址},则可以在Django 1.5下简单地删除该行 然后我尝试了: <a href=“{% url ‘auto.views.view_post’ post.slug %}”><h3>{{post.title}}</h3></a> 但是对于'auto.views.view_post'却出现了错误反向,其中未找到参数'(',)'和关键字参数'{}'。:(我做错了什么?
67 django  url 

8
在Ajax调用之后使用Django模板呈现JSON对象
我一直在尝试了解在Django中执行Ajax的最佳方法是什么。通过四处阅读,我了解到常见的过程是: 使用一些JavaScript库(例如jQuery)来制定您的Ajax调用,在Django中设置URL模式以捕获该调用并将其传递给视图函数 在Python视图函数中,检索您感兴趣的对象并将其以JSON格式或类似格式发送回客户端(通过使用内置的序列化器模块或simplejson) 在JavaScript中定义一个回调函数,该函数接收JSON数据并进行解析,以便创建需要显示的HTML。最后,JavaScript脚本将HTML放置在应保留的位置。 现在,我仍然不明白的是Django模板如何与所有这些相关?显然,我们根本没有利用模板的功能。理想情况下,我认为最好传回JSON对象和模板名称,以便可以迭代数据并创建HTML块。但是也许我在这里完全错了... 我发现朝这个方向发展的唯一资源是此代码段(769)但我还没有尝试过。显然,在这种情况下将要发生的所有结果HTML都是在服务器端创建的,然后传递给客户端。JavaScript回调函数只需要在正确的位置显示它。 这会导致性能问题吗?如果没有,即使不使用上面的代码段,为什么不使用Python而不是前端直接在后端格式化HTML? 非常感谢! 更新:请使用代码片段942,因为它是上述代码的增强版本!我发现继承支持通过这种方式效果更好。

7
在Django中访问“媒体”文件
我想爱Django,但是开发环境中的静态文件和媒体文件业务让我发疯。请把我从愚蠢中解救出来。 我在开发机器上。media我的项目目录的根目录中有文件夹。 在settings.py我有:MEDIA_ROOT = ''和MEDIA_URL = '/media/'。 在urls.py我有: if settings.DEBUG: urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, }), ) 但是我获取媒体文件的唯一方法是引用/media/media/例如 <img src="/media/media/image.png" />。 我期望(并且想要) <img src="/media/image.png" /> 谁能告诉我这里发生了什么,并给我一个简单的方法来设置媒体文件处理吗? 非常感谢你。 @Timmy O'Mahony-谢谢!史诗般的帖子,而且很清晰。但这留下了两个问题: (1)我必须用/media/和/static/,不media/和static/的MEDIA_URL和与STATIC_URL-我这么想吗? (2)如果是collectstatic软管/static/,您将站点级CSS放置在哪里,例如站点的CSS文件?/static/显然不在。 (3)我将它们放在项目根目录下的目录“ _”中并STATICFILES_DIRS指向它-这似乎是开发服务器获取其静态文件的位置,尽管有该urlpatterns指令。如果那是错误的,那么在开发期间您将站点级CSS放在哪里,以及collectstatic在修改它们时的工作流程是什么-您是否必须在一个位置进行编辑,并在每次编辑后将其收集在其他位置?
67 django 

11
ImportError:无法从“ django.utils”导入名称“ six”
目前,我已经将Django的版本从升级2.0.6到,3.0并且在调用python manage.py shellcommand时突然出现以下错误: ImportError:无法从“ django.utils”(/ path-to-project / project / venv / lib / python3.7 / site-packages / django / utils / init .py)导入名称“ six” 完整跟踪: Traceback (most recent call last): File "manage.py", line 13, in <module> execute_from_command_line(sys.argv) File "/path-to-project/project/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/path-to-project/project/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 377, in execute …

2
如何在Jupyter Notebook中使用django 3.0 ORM而不触发异步上下文检查?
Django 3.0增加了asgi / async支持,并提供了在异步上下文中发出同步请求的保护措施。同时,IPython刚刚添加了顶级的async / await支持,它似乎在默认事件循环内运行整个解释器会话。 不幸的是,这两个大加法的结合意味着jupyter笔记本中的任何django ORM操作都会导致SynchronousOnlyOperation异常: SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async. 如异常消息所述,可以将每个ORM调用包装为以下形式sync_to_async(): images = await sync_to_async(Image.objects.all)() 但这不是很方便,特别是对于通常在属性查找中隐式解析的相关字段。 (我尝试了%autoawait off魔术,但没有用,从快速浏览一下我假设的文档开始是因为ipykernels始终在asyncio循环中运行) 那么有没有办法在Django中禁用异步上下文检查中的同步或在同步上下文中运行ipykernel? 对于上下文:我编写了一个数据科学软件包,该软件包使用django作为后端服务器,但还在ORM上公开了基于jupyter的界面,该界面允许您在jupyter笔记本中清理/注释数据,跟踪机器学习实验并运行培训作业。

3
Django-CreateView不保存带有嵌套表单集的表单
我正在尝试采用一种使用Django-Crispy-Forms布局功能将嵌套表单集与主表单保存在一起的方法,但是我无法保存它。我正在跟踪此代码示例项目,但无法验证表单集以保存数据。如果有人能指出我的错误,我将非常感激。我还需要在同一视图中为EmployeeForm添加三个内联。我尝试了Django-Extra-Views,但无法正常工作。如果您建议为同一视图(如5左右)添加多个内联,将不胜感激。我想实现的唯一目的是创建一个页面Employee及其内联Education, Experience, Others。下面是代码: 楷模: class Employee(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employees', null=True, blank=True) about = models.TextField() street = models.CharField(max_length=200) city = models.CharField(max_length=200) country = models.CharField(max_length=200) cell_phone = models.PositiveIntegerField() landline = models.PositiveIntegerField() def __str__(self): return '{} {}'.format(self.id, self.user) def get_absolute_url(self): return reverse('bars:create', kwargs={'pk':self.pk}) class Education(models.Model): employee = models.ForeignKey('Employee', on_delete=models.CASCADE, related_name='education') course_title …

3
有没有一种方法可以在2个字段上创建唯一的ID?
这是我的模型: class GroupedModels(models.Model): other_model_one = models.ForeignKey('app.other_model') other_model_two = models.ForeignKey('app.other_model') 本质上,我想要的是other_model在此表中唯一。这意味着,如果存在other_model_oneid 为的记录,则123不应允许创建other_model_twoID为as的另一条记录123。我可以覆盖clean我的猜测,但是我想知道django是否内置了某些东西。 我在PSQL中使用版本2.2.5。 编辑:这不是一个不合时宜的情况。如果我用other_model_one_id=1和其他添加一条记录other_model_two_id=2,我应该不能用other_model_one_id=2和其他添加另一条记录。other_model_two_id=1

2
Django:运行manage.py总是中止
我有一个尝试在本地设置的现有Django应用程序。创建虚拟环境并安装所有必需的依赖项之后,运行manage.py只会中止,而不会出现任何其他有用的错误消息。 (venv) $ python manage.py [1] 39973 abort python manage.py 提供的任何子命令也只会中止,而我一直在尝试寻找一种没有运气的调试方法。 使用的版本: python 3.6.8 Django 2.0.2 编辑: 我终于找到了问题所在。如果您使用的是macOS 10.15(Catalina),则可以帮助您: 依赖项之一是cryptography需要openssl。您可以通过brew安装openssl,然后将符号链接添加到以下内容: cd /usr/local/lib ln -s /usr/local/Cellar/openssl/1.0.2t/lib/libcrypto.1.0.0.dylib libcrypto.dylib ln -s /usr/local/Cellar/openssl/1.0.2t/lib/libssl.1.0.0.dylib libssl.dylib
12 python  django 

5
对于从Python2到Python3的代码转换,最适合使用哪个版本的Python和Django?
目前,我在一家大公司工作,我们需要将python2的旧的Django大项目转换为python3版本,因此我进行了大量研究,但仍然找不到最适合转换哪个版本的Python和Django的完美答案。 目前,我使用的是旧版本的Python:2.7.16和Django:1.9.13。 任何人都可以为上述python2到python3的旧版本推荐最适合我的Python和Django版本。

1
在Django中仅使用一个表“ django_migrations”使用多个数据库
对于Django中的项目,我必须使用两个数据库:default和remote。我创建了routers.py,一切正常。 要求在远程数据库上创建一个表,然后我创建了迁移,然后运行它并django_migrations创建了表。我想django_migrations在默认数据库中只有一个表。 相关部分在routers.py这里: class MyRouter(object): # ... def allow_migrate(self, db, app_label, model_name=None, **hints): if app_label == 'my_app': return db == 'remote' return None 我这样运行迁移: python manage.py migrate my_app --database=remote 现在,当我这样做时: python manage.py runserver 我收到以下警告: 您有1个未应用的迁移。在为应用程序my_app应用迁移之前,您的项目可能无法正常工作。 运行“ python manage.py migration”以应用它们。 my_app在remote数据库中创建的表,并在数据库django_migrations内部remote将迁移标记为已应用。 编辑: 如何强制Django只使用一个表django_migrations,但仍将迁移应用到不同的数据库? 如何将迁移应用到不同的数据库中,从而不会引发警告?

1
为什么要在Django models.Manager中定义create_foo()而不是覆盖create()?
阅读Django文档后,建议Foo通过create_foo在管理器中定义模型来为命名模型创建自定义创建方法: class BookManager(models.Manager): def create_book(self, title): book = self.create(title=title) # do something with the book return book class Book(models.Model): title = models.CharField(max_length=100) objects = BookManager() book = Book.objects.create_book("Pride and Prejudice") 我的问题是,为什么前一个方法更喜欢简单地重写基类的create方法: class BookManager(models.Manager): def create(self, title): book = self.model(title=title) # do something with the book book.save() return book class Book(models.Model): …

1
Django可能会在不久的将来运行任务
假设我有一个模型Event。活动结束后,我想向所有受邀用户发送通知(电子邮件,推送等)。类似于以下内容: class Event(models.Model): start = models.DateTimeField(...) end = models.DateTimeField(...) invited = models.ManyToManyField(model=User) def onEventElapsed(self): for user in self.invited: my_notification_backend.sendMessage(target=user, message="Event has elapsed") 现在,当然,关键的是onEventElapsed何时调用timezone.now() >= event.end。请记住,end距离当前日期可能要几个月。 我考虑过两种基本方法: 使用定期cron作业(例如,每五分钟左右一次),该作业检查最近五分钟内是否发生了任何事件并执行我的方法。 使用celery并计划onEventElapsed使用eta将来要运行的参数(在models save方法中)。 考虑选项1,可能的解决方案可能是django-celery-beat。但是,以固定的时间间隔运行任务以发送通知似乎有些奇怪。另外,我提出了一个(潜在的)问题,该问题(可能)会导致一个不太优雅的解决方案: 每五分钟检查一次过去五分钟内发生的事件吗?似乎有些动摇,也许某些事件错过了(或者其他事件收到了两次发送的通知?)。潜在的工作方式:向模型添加一个布尔字段,该字段设置为True在发送通知后立即设置。 同样,选项2也有其问题: 手动更改事件开始/结束日期时间时的情况。使用时celery,taskID一旦日期更改并发出新任务,就必须存储(easy,ofc)并撤消任务。但是我已经读到,当处理将来运行的任务时,芹菜存在(特定于设计的)问题:github上的Open Issue。我意识到这是如何发生的,为什么它只是解决所有问题而已。 现在,我遇到了一些可以潜在地解决我的问题的库: celery_longterm_scheduler(但是这是否意味着我不能像以前那样使用celery,因为Scheduler类不同?这也与django-celery-beat... 的可能用法联系在一起。使用两个框架中的任何一个,是否仍然可以将作业排队(只是运行时间更长一点,但还没有几个月?) django-apscheduler,使用apscheduler。但是,我找不到任何有关如何处理在不久的将来运行的任务的信息。 我处理此问题的方式是否存在基本原则上的缺陷?我很高兴收到您的任何意见。 注意:我知道这很可能是基于观点的,但是,不管有人认为什么是丑陋或优雅的,我可能都错过了一个非常基本的东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.