问题标签 [django-custom-field]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
886 浏览

python - 尝试 JSON 序列化自定义 Django 模型字段时出现 TypeError

我已经编写了一个自定义 Django 模型字段来存储dateutil.relativedelta's. 该字段如下所示:

我正在尝试将具有此字段的对象序列化为 json:

但我收到一个错误:

通过使用pdb,我可以看到o在这种情况下是对象本身,它没有被转换为任何东西,也没有被序列化。

我该如何解决这个问题,以便我可以序列化我的字段?

Django 文档说(https://docs.djangoproject.com/en/dev/howto/custom-model-fields/#converting-field-data-for-serialization)添加 a value_to_string,我确实有。

0 投票
2 回答
137 浏览

database - django - 如何在自定义字段中为 oracle 后端设置异常?

问题:我正在编写自定义 django 模型字段。在 get_db_prep_save(self, value, connection) 中,我需要对 oracle 后端进行异常处理,并且其行为与其他后端不同。所以我正在寻找最好的、官方的和最优雅的方式来做到这一点。

免责声明:我不会接受这样的答案:“使用 settings.DATABASES 并查找 django.db.backends.oracle”,因为它完全是错误的。使用设置我无法确定我当前使用的是哪个数据库(默认或其他),oracle 后端路径将来可能会从 django.db.backends.oracle 更改为其他内容。我正在寻找的是在将自定义字段保存到数据库时检查我是否正在处理 oracle 的最佳方法。

0 投票
0 回答
1575 浏览

django - 夹层中的自定义页面字段未显示在模板中

我正在 Mezzanine 中构建一个 CMS,总而言之,我对该系统印象非常深刻。我无法告诉您过去我曾尝试定制多少个 CMS 系统并完全沮丧地放弃了。

总而言之,这一切都像丝绸一样光滑。但是我有一个用于显示 YouTube 视频的自定义页面,并且自定义字段(根据外壳程序,它肯定存在于实例中)无法在模板中呈现。

该应用程序被称为mezz_youtube;这是models.py:

管理员工作正常,YouTubePage 已成功创建,如 shell 所示:

但是在模板中,如这里显示的各种调试条目,自定义字段不会出现。这是模板:

这是输出的相应部分:

如您所见,该title字段呈现,但该video_slug字段不呈现。知道这里发生了什么吗?

0 投票
1 回答
224 浏览

django - 在管理员中编辑时,Django 自定义字段出错

我正在尝试实现一个自定义 Django 字段,该字段将在 DB 中保留我的模型类之一的名称(例如“Cat”、“Dog”、“Restaurant”、“SuperPrivateCommercialDataPiece”等)并在何时返回类对象要求:

我真的做到了。我已经 subclassed models.Field, set__metaclass__等:

在上面的代码中,它按预期工作。我还在 admin 中注册了一些包含此类字段的模型,现在我什至可以创建此类对象;为 MyGloriousFieldType 字段创建文本输入。

当我尝试使用 MyGloriousFieldType 字段编辑已经存在的对象时,危机就开始了。首先,它用“Cat object”而不是“Cat”填充文本字段。其次,当我将其改回“Cat”并单击“保存更改”时,它会出现错误:

那么,我做错了什么?

0 投票
0 回答
712 浏览

django - Django 异常值:'TextInput' 对象没有属性'clean'

我在 Django 1.6 中遇到了以下问题。

我尝试创建一个自定义 MultiValueField 并在提交表单期间捕获错误。错误出现在“django/forms/fields.py in clean, line 993”:


似乎 django 试图调用 django.forms.widgets.TextInput 中不存在的 clean 方法

所以我有一个问题 - 是我做错了还是 django 错误?

我的自定义字段代码:

表格代码:


问题已结束。

问题是我将自定义字段声明为小部件......

它必须是

0 投票
1 回答
1235 浏览

django - 如何更改 django admin 中显示的自定义模型字段的值

我有这个代码:

它旨在接受来自文本框中的许多电子邮件、验证和存储它们。它将它们保存为数据库中的文本(例如“jim@mail.com, lauren@mail.com”)。除了管理文本框和列表视图(可能还有其他地方)之外,一切都按预期工作。这些值显示为 u"['jim@mail.com', 'lauren@mail.com']"。当然,这是一种无效的格式,也很丑陋。

如何更改它以使其在文本框和列表视图中都显示为“jim@mail.com, lauren@mail.com”?

0 投票
1 回答
805 浏览

python - 在 django admin 中处理自定义字段的唯一约束

嗨,我是 django 的新手,刚刚尝试为我的模型使用自定义字段。我有一个 Char 字段,我希望始终将其保存为小写,因此我将其实现为自定义字段,如下所示(从另一个 Stack Overflow 帖子中学习):

我已经在管理员中对此进行了测试,并且确实在保存字段条目之前将其正确转换为小写。不幸的是,当我测试唯一性约束时,管理员没有优雅地处理完整性错误。如果从一开始就完全匹配,而不是像我一样得到干净的错误:

在此处输入图像描述

我得到了丑陋的错误页面:

在此处输入图像描述

如何设置自定义字段,以便“尽早”捕获唯一约束以触发优雅错误,或者以其他方式修改管理员以便更优雅地处理此“稍后”错误?

(注意:我现在只是在我的数据库中使用 sqlite3)

更新:如果有人感兴趣,这是对我有用的修改后的代码:

0 投票
4 回答
3091 浏览

javascript - 将 Javascript 添加到自定义小部件

这个问题与

Django:将 Javascript 添加到自定义小部件的最佳方式

但不一样。

最初的问题询问如何将支持 javascript 添加到自定义 django 小部件,答案是使用forms.Media,但该解决方案对我不起作用。我的例子是这样的:

小部件在以表单形式呈现时,会创建一条看起来像(玩具示例)这样的线:

现在,我还想添加到输出中的是另一行,如下所示:

最初的想法是,当小部件被渲染时,div和都script被渲染,但这不起作用。问题是html文档的结构如下所示:

在浏览器中加载小部件的 javascript 代码时,尚未加载 jQuery 和 datetimepicker js 文件(它们在文档末尾加载)。

我无法使用 来执行此操作Media,因为我生成的选项和 id 对功能至关重要。解决这个问题的最佳方法是什么?

0 投票
2 回答
1326 浏览

python - 如何在 Django 模型字段中存储 HDF5(HDF 存储)

我目前正在从事一个项目,我在该项目中生成 pandas DataFrames 作为分析结果。我在 Django 中进行开发,并希望在“结果”模型中使用“数据”字段来存储熊猫 DataFrame。

看来 HDF5(HDF Store) 是存储我的 pandas DataFrames 的最有效方式。但是,我不知道如何在我的模型中创建自定义字段来保存它。我将在下面展示简化的 views.py 和 models.py 来说明。

模型.py

视图.py

我很感激任何帮助,我也愿意接受另一种存储方法,例如 Pickle,只要我可以将它与 Django 一起使用,它具有类似的性能。

0 投票
1 回答
167 浏览

sql - 具有使用数据库默认值的自定义字段的 Django 模型

我正在尝试实现 IntegerField 的子类以在我的 Postgres 数据库上使用默认方法,而不是 django 默认方法(我知道这是一个热门话题)。为此,我在自定义字段上修改了以下方法

然而,当 django 执行 SQL 语句时,它看起来像这样:

插入失败,因为default关键字被引号包围。以下 SQL 语句有效:

我注意到问题在于 djangocursor.execute通过分别传递 SQL 语句和参数来执行的方式,从而导致default关键字被引号包围。

我正在尝试找到一种无需重写 postgres 后端即可解决此问题的方法

非常感谢帮助