Django的stdfields是一個Django應用程序,提供領域的作者希望在Django是標準 目前這僅限於MinutesField,EnumIntegerField和EnumCharField。
內容
- stdfields.forms.MinutesField:用一個整數來表示分鐘和小時的持續時間
- stdfields.fields.EnumIntegerField:使不同的選擇更容易一點工作
- stdfields.fields.EnumCharField:相同,但用於與一個char鍵選擇
MinutesField
是Django的標準django.forms.IntegerField的延伸。
此字段將接受值的持續時間(分鐘)在格式HH:MM或h.fraction,類似的方式大本營允許你指定你的時間花費在一個任務或者8點半8.5。在後一種情況下,只有8.25,8.5,8.50 8.75被認為是有效的輸入。
示例
行動勝於雄辯:
#models.py
類任務(models.Model):
  time_spent = models.IntegerField()
#forms.py
從stdfields.forms進口MinutesField
從車型導入任務
類TaskForm(forms.ModelForm):
  time_spent = MinutesField(標籤='?它花了多長時間“)
 類元:
 型號=任務
你可以使用stdfieldstags分鐘模板過濾器的格式為8點30分呈現這樣一個領域:
{%負載stdfieldstags%}
我花了{{task.time_spent |分鐘}}來完成這個任務。
枚舉
我一直使用Django的選擇參數字段的時候結束了醜陋的代碼。隨著stdfields.models.Enumeration類,我有一個方便的基類,可以讓我保持整潔:
#models.py
一流的顏色(枚舉):
  RED ='R'
 綠色='G'
  BLUE ='B'
  @classmethod
 全高清(CLS):
 返回[
 (cls.RED,_(u'Red')),
 (cls.GREEN,_(u'Green')),
 (cls.BLUE,_(u'Blue'))
 ]
類鉛筆(models.Model):
 顏色= models.CharField(選擇= Color.all(),MAX_LENGTH = Color.max_length())
#views.py
高清red_pencils(要求):
 鉛筆= Pencil.objects.filter(顏色= Color.RED)
  ...
 #打印'顯示的紅鉛筆“
  logging.info(“顯示%s的鉛筆'%(Color.as_display(Color.RED)))
EnumCharField和EnumIntegerField
現在我們可以用枚舉與EnumCharField和EnumIntegerField車型領域的工作更容易:
#models.py
一流的顏色(枚舉):
 #同上
類鉛筆(models.Model):
 顏色= models.EnumCharField(枚舉=顏色,MAX_LENGTH = Color.max_length())
本實施例基本上與上述相同,因為EnumCharField是正規的Django CharField的子類。通過枚舉字段的枚舉關鍵字參數,選擇將自動在更新枚舉對象更新。而且,由於你使用枚舉的MAX_LENGTH提供的方法,該MAX_LENGTH將在必要時更新。就像前面例子中。枚舉領域只是提供一些更清晰的閱讀代碼的時候。
EnumIntegerField的作品完全一樣,但對於枚舉整數鍵。 。這兩個領域可與南
要求:
- 在Python中
- 在Django的
評論沒有發現