Questions tagged «django»

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

6
“'测试'模块导入错误”是什么意思?
我逐行复制了一个有效的测试,只是更改了几个名称(至少我想如此),现在我得到了一个非常神秘的错误:(我用FOO,BAR替换了一些东西) ImportError: 'tests' module incorrectly imported from 'FOO/exports/tests'. Expected 'FOO/exports'. Is this module globally installed? 问题是我根本不理解该错误。此错误消息是什么意思? 完整的堆栈跟踪: Traceback (most recent call last): File "BAR/modeling/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line utility.execute() File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Users/jonathan/anaconda/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv super(Command, …
82 python  django 

7
使用django-rest-framework序列化程序检索外键值
我正在使用django rest框架来创建API。我有以下型号: class Category(models.Model): name = models.CharField(max_length=100) def __unicode__(self): return self.name class Item(models.Model): name = models.CharField(max_length=100) category = models.ForeignKey(Category, related_name='items') def __unicode__(self): return self.name 要为类别创建序列化器,请执行以下操作: class CategorySerializer(serializers.ModelSerializer): items = serializers.RelatedField(many=True) class Meta: model = Category ...这将为我提供: [{'items': [u'Item 1', u'Item 2', u'Item 3'], u'id': 1, 'name': u'Cat 1'}, {'items': [u'Item …

7
Python Django Rest Framework UnorderedObjectListWarning
我从Django 1.10.4升级到1.11.1,突然我在运行测试时收到大量这些消息: lib/python3.5/site-packages/rest_framework/pagination.py:208: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <QuerySet [<Group: Requester>]> paginator = self.django_paginator_class(queryset, page_size) 我已经将其追溯到Django Pagination模块:https : //github.com/django/django/blob/master/django/core/paginator.py#L100 它似乎与我的查询集代码有关: return get_user_model().objects.filter(id=self.request.user.id) 我如何找到有关此警告的更多详细信息?似乎我需要order_by(id)在每个过滤器的末尾添加一个,但是我似乎找不到要添加order_by的代码(因为警告不会返回堆栈跟踪,因此它在测试期间会随机发生跑)。 谢谢! 编辑: 因此,使用@KlausD。详细提示,我查看了一个导致此错误的测试: response = self.client.get('/api/orders/') 这可以解决,OrderViewSet但是get_queryset中的任何事情都不会导致它,而序列化程序类中的任何原因都不会导致它。我还有其他使用相同代码来获取/ api / orders的测试,而这些测试不会导致它.... get_queryset之后DRF会做什么? https://github.com/encode/django-rest-framework/blob/master/rest_framework/pagination.py#L166 如果我对分页进行追溯,那么我会得到一堆与Django rest框架有关的东西,但是没有任何东西可以指出我的哪些查询正在触发顺序警告。

2
如何使用Django进行分组和汇总
我想通过ORM进行一个非常简单的查询,但无法弄清楚。 我有三种模式: 位置(位置),属性(位置可能具有的属性)和评分(也包含得分字段的M2M“直通”模型) 我想选择一些重要的属性,并能够通过这些属性对我的位置进行排名-即,所有选定属性的总分更高=更好。 我可以使用以下SQL来获取所需的内容: select location_id, sum(score) from locations_rating where attribute_id in (1,2,3) group by location_id order by sum desc; 哪个返回 location_id | sum -------------+----- 21 | 12 3 | 11 我可以通过ORM得到的最接近的是: Rating.objects.filter( attribute__in=attributes).annotate( acount=Count('location')).aggregate(Sum('score')) 哪个返回 {'score__sum': 23} 即所有的总和,而不是按位置分组。 可以解决吗?我可以手动执行SQL,但宁愿通过ORM保持一致。 谢谢

2
如何在Django中为同一参数使用多个变量处理request.GET
在Django视图中,您可以访问request.GET['variablename'],因此在视图中您可以执行以下操作: myvar = request.GET['myvar'] 实际的request.GET['myvar']对象类型是: <class 'django.http.QueryDict'> 现在,如果要传递具有相同参数名称的多个变量,即: http://example.com/blah/?myvar=123&myvar=567 您想要list为参数返回python myvar,然后执行以下操作: for var in request.GET['myvar']: print(var) 但是,当您尝试仅获得url中传递的最后一个值时,即在上面的示例中,您将获得567,而在shell中的结果将是: 5 6 7 但是,当您打印request.GET它时,它似乎带有一个listie: <QueryDict: {u'myvar': [u'123', u'567']}> 确定更新:它旨在返回最后一个值,我的用例是我需要一个列表。 来自Django文档: QueryDict。getitem(键)返回给定键的值。如果键具有多个值,则 getitem()返回最后一个值。如果键不存在,则引发django.utils.datastructures.MultiValueDictKeyError。(这是Python标准KeyError的子类,因此您可以坚持捕获KeyError QueryDict.getlist(key)以Python列表形式返回带有请求的键的数据。如果键不存在,则返回一个空列表。保证返回某种列表。 更新:如果有人知道django开发人员为什么要这样做,请告诉我,显示列表似乎违反直觉,并且它的行为不像一个。不是很pythonic!


6
如何在Django模板中执行查询过滤
我需要从Django模板中执行过滤查询,以在视图中获取与python代码等效的一组对象: queryset = Modelclass.objects.filter(somekey=foo) 在我的模板中,我想做 {% for object in data.somekey_set.FILTER %} 但我似乎无法找出如何编写FILTER。

7
Django:用户登录时发出信号?
在我的Django应用中,我需要在用户登录时开始运行一些定期的后台作业,并在用户注销时停止运行它们,因此我正在寻找一种优雅的方式来 收到用户登录/注销的通知 查询用户登录状态 在我看来,理想的解决方案是 由每个发送的信号django.contrib.auth.views.login和... views.logout 一种django.contrib.auth.models.User.is_logged_in()类似于... User.is_active()或... User.is_authenticated() Django 1.1.1没有该功能,我不愿意修补该源代码并添加它(无论如何都不知道如何做)。 作为临时解决方案,我is_logged_in向UserProfile模型添加了一个布尔字段,默认情况下将其清除,该字段是在用户首次点击登录页面(由定义LOGIN_REDIRECT_URL = '/')时设置的,并在后续请求中被查询。我将其添加到UserProfile中,因此不必为此而派生和自定义内置User模型。 我不喜欢这种解决方案。如果用户明确单击注销按钮,则可以清除该标志,但是在大多数情况下,用户只是离开页面或关闭浏览器即可;在这些情况下,清除标志似乎对我来说不是直截了当的。除此以外(尽管这是数据模型的清晰性挑剔),is_logged_in但不属于UserProfile,而是属于User模型。 谁能想到替代方法?
82 python  django  login  signals 

25
Django-没有这样的表:main.auth_user__old
我遵循的是官方Django文档中的第一个应用程序教程,尝试保存通过管理页面进行的某些更改时出现此错误。我对此进行了一些研究,但是我能够找到的可能解决方案(例如,迁移数据库)根本行不通。如果您想查看我的代码的某些特定部分,请告诉我。 以下是错误: / admin / polls / question / 1 / change /处的OperationalError没有此表:main.auth_user__old请求方法:POST请求URL:http : //127.0.0.1 :8000/admin/polls/question/1/change/ Django版本: 2.1.4异常类型:OperationalError异常值:无此类表:main.auth_user__old异常位置:/Users/gfioravante/Projects/test_app/ta_env/lib/python3.7/site-packages/django/db/backends/sqlite3/base执行中的.py,第296行Python可执行文件:/ Users / gfioravante / Projects / test_app / ta_env / bin / python3 Python版本:3.7.1 Python路径: ['/ Users / gfioravante / Projects / test_app / test_app','/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip','/ usr / local /Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7'、'/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/ lib / python3.7 …

6
如何获取Django中刚刚创建的记录的ID?
我为我的一个项目使用Django 1.3,我需要获取刚刚保存在数据库中的记录的ID。 我有类似下面的代码,可以将记录保存到数据库中: n = MyData.objects.create(record_title=title, record_content=content) n.save() 记录的ID刚刚保存了自动递增。有没有办法获取该ID并在我的代码中的其他地方使用它?

15
Django 1.10.1'my_templatetag'不是注册的标签库。必须是以下之一:
我想要一个菜单​​,可以根据您所属的组进行定制。我正在使用Django 1.10.1,allauth等。当我试图使我的templatetag失败时,它说: TemplateSyntaxError at / 'my_templatetag' is not a registered tag library. Must be one of: account account_tags admin_list admin_modify admin_static admin_urls cache i18n l10n log socialaccount socialaccount_tags static staticfiles tz “ my_templatetag.py”看起来像这样: from django import template from django.contrib.auth.models import Group register = template.Library() @register.filter(name='has_group') def has_group(user, group_name): group = …

5
如何仅在Django中分别获取当前日期和当前时间?
使用此类时,我遇到了一个有趣的情况: class Company(models.Model): date = models.DateField() time = models.TimeField() c = Company(date=datetime.datetime.now(), time=datetime.datetime.now()) Django决定使用format.py文件中DATETIME_INPUT_FORMATS定义的内容。这是有道理的,因为我将a传递给两个字段。datetime.now() 如果我只传入当前日期和当前时间,我想可以分别使用DjangoDATE_INPUT_FORMATS和TIME_INPUT_FORMATS。 像这样: c = Company(date=datetime.date.now(), time=datetime.time.now()) 但这显然引发了异常,因为现在不存在这种异常。有没有其他方法可以实现这一目标?

4
使用gunicorn和nginx部署Django
这是一个广泛的问题,但我想得到一个规范的答案。我一直在尝试在Django中使用gunicorn和nginx部署站点。阅读了无数教程之后,我已经成功了,但是我不能确定我所遵循的步骤是否足以运行一个站点而没有问题,或者也许有更好的方法来做。这种不确定性令人讨厌。 这就是为什么我要为新手寻找一个非常详细且经过充分解释的答案。我不想过多地解释我所知道的和我所不知道的,因为这可能会使答案有些偏颇,而其他人可能会从您的答案中受益较少。但是,我想看到的是: 您认为哪种“设置”效果最好?我使用了virtualenv并将我的Django项目移至该环境中,但是我看到了另一种设置,其中有一个用于虚拟环境的文件夹,另一个用于项目的文件夹。 如何设置方式以允许将多个站点托管在单个服务器中? 为什么有人建议使用gunicorn_django -b 0.0.0.0:8000而另一些建议gunicorn_django -b 127.0.0.1:8000呢?我在Amazon EC2实例中测试了后者,但是前者没有问题时却无法正常工作。 Nginx的配置文件背后的逻辑是什么?有太多使用完全不同的配置文件的教程,我困惑于哪个更好。例如,有些人使用alias /path/to/static/folder而另一些人root /path/to/static/folder。也许您可以共享您的首选配置文件。 为什么我们之间创建一个符号链接site-available,并sites-enabled在/etc/nginx? 一如既往地欢迎一些最佳做法:-) 谢谢

9
如何在Django中不使用模板的情况下返回JSON?
这与此问题有关:Django根据客户端python返回json和html 我有一个适用于Django应用的命令行Python API。当我通过API访问该应用程序时,它应该返回JSON,而在浏览器中它应该返回HTML。我可以使用不同的URL来访问不同的版本,但是如何仅用一个模板在views.py中呈现HTML模板和JSON ? 要呈现HTML,我将使用: return render_to_response('sample/sample.html....') 但是如何在不放置JSON模板的情况下对JSON做同样的事情?(content-type应为application/json而不是text/html) 什么将决定JSON和HTML输出? 所以在我的views.py: if something: return render_to_response('html_template',.....) else: return HttpReponse(jsondata,mimetype='application/json')

5
如何在Django Rest Framework中过滤嵌套的序列化器?
在Django Rest Framework中,当一个序列化器嵌套在另一个序列化器中时,如何过滤它? 我的过滤器被强加在DRF视图集中,但是当您从另一个序列化器内部调用序列化器时,嵌套序列化器的视图集将永远不会被调用,因此嵌套结果看起来是未经过滤的。 我尝试在原始视图集上添加过滤器,但是它似乎无法过滤嵌套结果,因为嵌套结果被称为单独的预提取查询。(您看到嵌套的序列化程序是反向查找。) 是否可以在嵌套序列化器本身中添加get_queryset()覆盖(将其移出视图集),以在其中添加过滤器?我也尝试过,没有运气。 这是我尝试过的方法,但似乎没有被调用: class QuestionnaireSerializer(serializers.ModelSerializer): edition = EditionSerializer(read_only=True) company = serializers.StringRelatedField(read_only=True) class Meta: model = Questionnaire def get_queryset(self): query = super(QuestionnaireSerializer, self).get_queryset(instance) if not self.request.user.is_staff: query = query.filter(user=self.request.user, edition__hide=False) return query

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.