一个Django应用程序,它使用户创建表单字段变得简单。
django-user-fields的Python项目详细描述
django用户字段
一个Django应用程序,它使用户创建表单字段变得简单,处理从表单生成到数据存储和检索的所有事情。在
它最初是为MUN Manager构建的,允许会议在注册过程的所有部分收集他们想要的任何信息。django用户字段允许会议使用一个简单的管理界面轻松地将自己的额外字段添加到各种表单中,从而创建定制的体验。在
简易安装和使用指南
- 安装django-user-fields:
$ pip install django-user-fields
- 将user_fields添加到已安装的应用程序:
- 运行数据库迁移:
$ python manage.py migrate
- 创建ExtendedExtraField模型:
from user_fields.models import ExtraField class ExtendedExtraField(ExtraField): # You can add any custom fields you'd like here to make filtering fields easier. # A list of all predefined fields can be found below.
- 将@initialise_extra_fields装饰符添加到表单中:
from user_fields.decorators import initialise_extra_fields @initialise_extra_fields class ExampleForm(forms.ModelForm):
- 将UserFieldMixin添加到要有额外字段的对象:
from user_fields.mixins import UserFieldMixin class ExampleObject(models.Model, UserFieldMixin):
- 将UserDataField添加到对象以进行存储和迁移:
from user_fields.models import UserDataField, ExtraField class ExampleObject(models.Model, UserFieldMixin): extra_data = UserDataField() $ python manage.py migrate
注意:如果使用extra_data和/或您想将存储字段命名为其他名称,则可以在设置中定义USER_FIELDS_ATTR_NAME。在
- 创建一些额外字段并将其传递到表单:
extra_fields = ExtendedExtraField.objects.filter(parameter=something) form = ExampleForm(... extra_fields=extra_fields, ...)
- 添加一行以将额外字段保存到对象:
object = form.save() object.save_extra_form_data(form) # Ensures that both object and form save functions are not overwritten.
支持的字段
- CharField
- CharField With Choices
- TextField
- BooleanField
- EmailField
如果您想添加更多字段,请随时提交拉取请求。大多数字段应该相对容易添加,尽管FileField将是一个有趣的挑战!在
ExtraField属性
Proper Name | Name | Description | Example |
---|---|---|---|
Name | name | Equivalent to the HTML ^{tt16}$ name parameter. | example-field (slug format) |
Label | label | Django form field label (rendered name). | Example Field |
Help Text | help_text | Django form field help text. | This is some guidance. |
Required | required | Django form field required parameter. | True / False |
Field Type | field_type | Dropdown with all supported fields. | CharField (char) |
Max. Length | max_length | CharField (only) max length. | 35 |
Choices | choices | Choices for the ^{tt10}$. | Option 1,Option 2,Option 3 |
UserFieldMixin函数
.retrieve_extra_data(ExtraField, formatted=True/False):返回为给定字段存储的数据。如果formatted为True,它将返回CharField With Choices的值,否则将返回所选的键。在
.save_extra_data(ExtraField, data):将为给定字段提供的数据保存到对象。在
.save_extra_form_data(Form):将表单中的所有额外字段数据保存到对象。在
.delete_extra_data(ExtraField):删除与给定字段关联的所有数据。在
待办事项
- 改进文档。在
- 实施测试。在
- 添加对更多字段的支持。在
- 项目
标签: