我的/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
答案 0 :(得分: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
答案 1 :(得分:1)
我会将您的任何自定义字段放在单独的fields.py
。
查看django.contrib
中的一些应用,大多数都有一个models.py
,fields.py
,views.py
,middleware.py
等的通用结构。< / p>
遵循标准意味着任何熟悉django框架的人都可以轻松接听您的应用。