我正在编写一个可重用的Django应用程序,该应用程序提供自定义模型字段和自定义表单字段。我想将这两个部分中的一部分放在一个名为fields.py
的文件中,但很明显,我不能将模型和表单字段放在同一个文件中。
我的问题是:在可重复使用的应用中命名自定义模型字段和自定义表单字段是否有任何命名约定或建议的最佳做法?
我正在考虑复制Django的结构,但是fields文件都在不同的模块中(django.db.model.fields
和django.forms.fields
)而我的表单和模型字段存在于同一模块(应用程序)中
在这种情况下,文档没有说明命名约定:它只是解释了如何编写字段,而不是代码应该在哪里(留给用户)。
答案 0 :(得分:1)
虽然Django将模型字段放在django.forms.fields
和models
中的表单字段中,但对于大多数Django开发人员来说,这只是一个内部实现细节。
可以通过forms
和from django.db import models
from django import forms
class Question(models.Model):
question_test = models.CharField(max_length=200)
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
模块直接访问模型和表单字段:
models.py
对于简单的应用,可以分别在forms.py
和db/fields.py
放置模型和表单位置字段。这样,您的应用程序界面将与Django的界面相匹配。
对于更复杂的应用,您可以使用forms/fields.py
和models
创建层次结构。但是如果你试图密切关注Django的界面,你会希望仍然可以通过forms
或fields.py
模块访问这些字段。为此,您需要将相关db/models.py
文件的内容导入forms/__init__.py
或from .fields import *
,例如:
int x;
x = ({ 1; 2; 3; });
printf("%d\n", x); // should be 3
希望这有帮助。