一个Django应用程序,它使用户创建表单字段变得简单。

django-user-fields的Python项目详细描述


django用户字段

一个Django应用程序,它使用户创建表单字段变得简单,处理从表单生成到数据存储和检索的所有事情。在

它最初是为MUN Manager构建的,允许会议在注册过程的所有部分收集他们想要的任何信息。django用户字段允许会议使用一个简单的管理界面轻松地将自己的额外字段添加到各种表单中,从而创建定制的体验。在

简易安装和使用指南

  1. 安装django-user-fields
$ pip install django-user-fields
  1. user_fields添加到已安装的应用程序:
^{pr2}$
  1. 运行数据库迁移:
$ python manage.py migrate
  1. 创建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.
  1. @initialise_extra_fields装饰符添加到表单中:
from user_fields.decorators import initialise_extra_fields

@initialise_extra_fields
class ExampleForm(forms.ModelForm):
  1. UserFieldMixin添加到要有额外字段的对象:
from user_fields.mixins import UserFieldMixin

class ExampleObject(models.Model, UserFieldMixin):
  1. 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。在

  1. 创建一些额外字段并将其传递到表单:
extra_fields = ExtendedExtraField.objects.filter(parameter=something)

form = ExampleForm(... extra_fields=extra_fields, ...)
  1. 添加一行以将额外字段保存到对象:
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 NameNameDescriptionExample
NamenameEquivalent to the HTML ^{tt16}$ name parameter.example-field (slug format)
LabellabelDjango form field label (rendered name).Example Field
Help Texthelp_textDjango form field help text.This is some guidance.
RequiredrequiredDjango form field required parameter.True / False
Field Typefield_typeDropdown with all supported fields.CharField (char)
Max. Lengthmax_lengthCharField (only) max length.35
ChoiceschoicesChoices 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):删除与给定字段关联的所有数据。在

待办事项

  • 改进文档。在
  • 实施测试。在
  • 添加对更多字段的支持。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现