小编Ada*_*rrh的帖子

Django - ContentType 不存在于自己的应用程序

我正在尝试学习如何使用 ContentTypes 框架,但似乎无法找到我自己的应用程序。

文档从 django.contrib.sites 导入模型的明确说明,这对我有用。然而,当我尝试替换我自己的应用程序和模型时,我没有成功。

我在 MyApp.Events.models.Event 有一个模型。我试着打电话:

i = ContentType.objects.get(app_label="Events", model="Event")

作为回应,控制台打印:

django.contrib.contenttypes.models.DoesNotExist:ContentType 匹配查询不存在。

我也试过这个,但也失败了:

i = ContentType.objects.get(app_label="events", model="event")

'django.contrib.contenttypes'在已安装的应用程序下列出了这个应用程序。我是否缺少另一个设置来启用此功能?

django django-contenttypes

2
推荐指数
1
解决办法
1652
查看次数

Django - 通过上传小部件保存 Cloudinary 对象

我正在尝试设置 Cloudinary 的上传小部件并将生成的 Cloudinary 对象保存到CloudinaryField()我的模型中。Cloudinary 的示例项目仅展示了如何使用{{form}}.

当我使用小部件上传时,我得到了一本字典,但我在文档中找不到任何地方可以让我保存它。

django cloudinary

2
推荐指数
1
解决办法
319
查看次数

Django:导入错误:无法导入名称“GeoIP2”

我正在尝试geoip2按照说明为 GeoDjango进行设置。

出于某种原因,包装器没有导入函数。它在我下载数据库并在我的设置中指向它们之前工作,但由于某种原因现在我无法加载GeoIP2(即使我注释掉 中的行settings.py)。我应该如何解决这个问题?

Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 17:26:49) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import geoip2
>>>
>>> from django.contrib.gis.geoip2 import GeoIP2
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: cannot import name 'GeoIP2'
>>>
Run Code Online (Sandbox Code Playgroud)

编辑:我可以看到GeoIP2源文件中正确列出的函数(我没有修改)。什么可能阻止它加载?

我正在运行 Django 1.11.4

如果我导入django.contrib.gis.geoip2这是它的__path__属性:

>>> geoip2.__path__
['C:\\Users\\Adam\\Envs\\otherlane\\lib\\site-packages\\django\\contrib\\gis\\geoip2']
Run Code Online (Sandbox Code Playgroud)

django geodjango

2
推荐指数
1
解决办法
3305
查看次数

我的datetime.strptime格式有什么问题?

有了这个功能:

timestamp = datetime.strptime(date_str, date_fmt)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError:时间数据'太阳,2018年10月28日07:33:13 -0400(EDT)'与格式'%a,%d%b%Y%H:%M:%S%z(%Z)'不匹配

Sun, 28 Oct 2018 07:33:13 -0400 (EDT)
%a, %d %b %Y %H:%M:%S %z (%Z)
Run Code Online (Sandbox Code Playgroud)

我已经看了十几次,我无法弄清楚我做错了什么.

我的Python版本:

Python 3.7.0 (default, Jul 23 2018, 20:24:19) 
Run Code Online (Sandbox Code Playgroud)

python python-datetime

2
推荐指数
1
解决办法
704
查看次数

Django 中的中断迁移

我在我的模型中创建并随后更改了一个 DecimalField。现在,当我尝试运行时,出现python manage.py migrate以下错误:

decimal.InvalidOperation: quantize result has too many digits for current context
Run Code Online (Sandbox Code Playgroud)

在阅读了 SO 上的各种相关问题后,我尝试增加 max_digits,这无济于事。 我已经手动删除了我的 postgreSQL 数据库中的模型,希望能够在我迁移模型时重新创建它,但我仍然遇到同样的错误,并且无法迁移模型并在数据库中重新创建模型。

这是有问题的模型:

class Version(models.Model):
    version_number = models.DecimalField(default=1.0, max_digits=3,
                                     decimal_places=2)
Run Code Online (Sandbox Code Playgroud)

我能做些什么来解决这个问题?

编辑 当我更改 DecimalField 时,我更改了max_digits

python django postgresql

1
推荐指数
1
解决办法
1097
查看次数

Django - 如何在 queryset .values() 中获取显示名称

我有以下经理:

class Totals(Manager):

def by_customer_and_date(self, start_date, end_date):

    qs = self.model.objects.filter(
        date__range=(start_date, end_date)
    ).values(
        "customer"
    ).annotate(
        ...bunch of stuff...
    )

    return qs
Run Code Online (Sandbox Code Playgroud)

customer与另一个对象的 FK 关系在哪里。现在,查询集打包在相关customer对象的 ID 中,但我希望它使用显示名称,这样我就可以为我的模板很好地打包它。

现在,我已将以下内容添加到管理器中:

for q in qs:
    q['customer'] = Customer.objects.get(id=q.get('customer')).name
Run Code Online (Sandbox Code Playgroud)

它工作正常,但感觉像是额外的工作......对我来说,它是 50 个数据库点击而不是一个。是否有任何快捷方式可以立即将显示名称放入 qs 字典中?

django django-queryset

1
推荐指数
1
解决办法
5914
查看次数