python - 在 Django 中添加自定义字段的最佳实践

标签 python django

我的 /app/models.py 中有一个自定义字段。我的问题是...

这里的最佳实践是什么。我应该有一个单独的文件,即 customField.py 并导入到 models.py 中,还是应该全部位于同一个 models.py 中文件? 最佳实践

class HibernateBooleanField(models.BooleanField):

    __metaclass__ = models.SubfieldBase

    def get_internal_type(self):
        return "HibernateBooleanField"

    def db_type(self):
        return 'bit(1)'

    def to_python(self, value):
        if value in (True, False): return value
        if value in ('t', 'True', '1', '\x01'): return True
        if value in ('f', 'False', '0', '\x00'): return False

    def get_db_prep_value(self, value, *args, **kwargs):
        return 0x01 if value else 0x00

最佳答案

我会将您的任何自定义字段放在单独的 fields.py 中。

看看 django.contrib 中的一些应用程序,大多数都具有单个 models.pyfields.py 的通用结构、views.pymiddleware.py

遵循标准意味着任何熟悉 django 框架的人都可以轻松上手您的应用。

关于python - 在 Django 中添加自定义字段的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142144/

相关文章:

同表中的Django模型外键

python - docker compose up 生成 (2005, "Unknown MySQL server host ' db' (-2)") 错误

python - Django 模型字段未出现在管理员中

django - 通过 Django 中的另一个模型查询一个模型

python - 如何将整数的pytorch张量转换为 boolean 值的张量?

python - 是否可以使用单个记录器编写许多不同的日志文件?

Python:将打印递归函数转换为生成器

python - 迭代字典和列表的字典的 Pythonic 方法是什么?

Django - 在表单中创建新对象,更新选择框并保存

python - 属性错误: 'str' object has no attribute 'get'