django model choices为django模型和表单提供了一种简洁明了的方式来指定“choices”选项。

django-model-choices的Python项目详细描述


Django型号选择

django model choices(dmc)提供了一种可读和简单的方式来指定django模型和表单的选择。尽管有许多类似的项目可用,但django model choices愿意提供最整洁、最枯燥的语法。

功能

Django的经典选择类如下:

classCharityType(models.Model):SOCIAL='SOC'ENVIRONMENTAL='ENV'EDUCATIONAL='EDU'CHOICES=((SOCIAL,'Social'),(ENVIRONMENTAL,'Environmental'),(EDUCATIONAL,'Educational'),)

这远不是干巴巴的,也容易出现打字错误和其他错误。使用django模型选择您可以做到:

frommodelchoicesimportChoicesclassCharityType(Choices):SOCIAL=('SOC','Social')ENVIRONMENTAL=('ENV','Environmental')EDUCATIONAL=('EDU','Educational')

每个选项的值必须是一个元组,其中包含数据库的值和用户可读的值,该值也可以是本例中的转换对象。

CHOICES字段将由元类神奇地生成,因此您可以在如下模型中使用它:

classCharity(models.Model):charity_type=models.CharField(max_length=1,choices=CharityType.CHOICES)

变量SOCIALENVIRONMENTALEDUCATIONAL可用于以编程方式表示选择值。一旦创建了类,它们的值就不再是元组,而只是数据库字段(因此CharityType.ENVIRONMENTAL等于'ENV')。所以您可以这样做:

charity=Charity()charity.charity_type=CharityType.ENVIRONMENTALcharity.save()

另一个神奇产生的场是VALUE_MAPPER。它是一个字典,其中键表示数据库值,字典值表示用于声明选项的变量名。在我们的示例中VALUE_MAPPER如下所示:

>>>CharityType.VALUE_MAPPER{'SOC':'SOCIAL','ENV':'ENVIRONMENTAL','EDU':'EDUCATIONAL'}

如果需要使用变量名a code(例如rest api),这很有用,因为用户可读的值可能是翻译的主题。

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

推荐PyPI第三方库


热门话题
多线程Java可运行接口解决方案   java指向这些方法的uri是什么样子的   java处理:一个对象忽略if语句   在DispatcherServlet中找不到URI为[***]的HTTP请求的java映射   java Weka未启动。只有黑屏消失了   java如何根据对象的一个属性对对象数组进行排序?   eclipse在Kotlin注释参数中使用java常量   用于截锥剔除的java截锥未正确创建   java如何让多个活动使用相同的跟踪活动?   通过安卓的woocommerce api中的java错误Url   来自另一个文件的JSTL中每个循环的java   java使用安卓应用程序中的数据库保存gps位置   Java中比较linkedHashMap值和字符串的类型转换   在java中,有没有一种方法可以从一开始就使用Kafka流(而不是通过KafkaConsumer)读取消息?   使用jmonkeyengine在安卓上运行basicgame的java疑难解答   java中的millis字符串格式   Java泛型、反射API和JDBC:无法映射Java。朗和爪哇。sql。类型的时间戳   java在DynamoDB中以历元格式自动填充时间