Python中文
首页
教程
问答
标签
搜索
登录
注册
具有多个inheritan的Django自定义字段
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有两个自定义Django字段,<code>JSONField</code>和<code>CompressedField</code>,这两个字段都工作得很好。我也想要一个<code>CompressedJSONField</code>,我很希望我可以这样做:</p> <pre><code>class CompressedJSONField(JSONField, CompressedField): pass </code></pre> <p>但在进口上我得到:</p> ^{pr2}$ <p>我可以找到关于在Django中使用具有多重继承的模型的信息,但是没有关于对字段执行相同操作的信息。这有可能吗?或者我应该在这个阶段放弃?在</p> <p><strong>编辑:</strong></p> <p>为了清楚起见,我不认为这与我的代码的细节有关,因为下面的代码也有相同的问题:</p> <pre><code>class CustomField(models.TextField, models.CharField): pass </code></pre> <p><strong>编辑2:</strong></p> <p>目前我使用的是python2.6.6和django1.3。下面是我的精简测试示例的完整代码:</p> <h2><code>customfields.py</code></h2> <pre><code>from django.db import models class CompressedField(models.TextField): """ Standard TextField with automatic compression/decompression. """ __metaclass__ = models.SubfieldBase description = 'Field which compresses stored data.' def to_python(self, value): return value def get_db_prep_value(self, value, **kwargs): return super(CompressedField, self)\ .get_db_prep_value(value, prepared=True) class JSONField(models.TextField): """ JSONField with automatic serialization/deserialization. """ __metaclass__ = models.SubfieldBase description = 'Field which stores a JSON object' def to_python(self, value): return value def get_db_prep_save(self, value, **kwargs): return super(JSONField, self).get_db_prep_save(value, **kwargs) class CompressedJSONField(JSONField, CompressedField): pass </code></pre> <h2><code>models.py</code></h2> <pre><code>from django.db import models from customfields import CompressedField, JSONField, CompressedJSONField class TestModel(models.Model): name = models.CharField(max_length=150) compressed_field = CompressedField() json_field = JSONField() compressed_json_field = CompressedJSONField() def __unicode__(self): return self.name </code></pre> <p>一旦我添加了<code>compressed_json_field = CompressedJSONField()</code>行,初始化Django时就会出现错误。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>很难理解你到底是什么时候犯了那个错误。但是看看DJango代码,有simlar实现(多重继承)<br/></p> <p>参考:<strong>类ImageFieldFile(ImageFile,FieldFile)</strong><br/> 在django/db/models/fields中</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
10 回答
当用户登录到站点时,如何显示不同的导航栏
10 回答
当用户登录时,在Flask中向用户显示处理结果
7 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
9 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
5 回答
当用户的付款逾期2天时,从Django模型检索数据
3 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
10 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
6 回答
当用户确定打印数量时,使用Matplotlib打印动画
1 回答
当用户离开时是否可以删除整个网页?
9 回答
当用户给出一个单词时如何打印?
7 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
4 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
10 回答
当用户被更改时,消息不会来自web套接字
9 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
10 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
4 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
9 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
9 回答
当用户购买某个类别时,是否查找其他类别的销售?
3 回答
当用户转到上一页时,Django和芹菜插入操作
4 回答