1

我有一个自定义字段位于我的/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
4

2 回答 2

1

我不建议将所有内容都放在一个models.py文件中。我喜欢为模型、字段和视图创建单独的包,然后包含其他模块。我认为它是 Django 应用程序代码结构和可读性的最佳解决方案之一。它看起来像这样:

/app
  /models
     /__init__.py
     /model1.py
     /model2.py
  /fields
     /__init__.py
     /custom_field1.py
     /custom_field2.py
  /views
     /__init__.py
     /page1.py
     /page2.py
于 2013-01-03T15:57:10.500 回答
1

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

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

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

于 2013-01-03T16:08:14.783 回答