2017-07-22 18 views
-1

如何可以強制用戶的格式化輸入name.extention如何格式化用戶在Django輸入形成

兩種格式,我需要在我的形式來實現:

  1. 用戶可以只放小字母(不大寫字母允許) 極品標記名字段
  2. 對於其他領域,用戶需要把filename.extentio像(server.js)極品名域

我怎樣才能實現我的Django的形式這兩個場景或模板

forms.py

from django import forms 


class BuildImageForm(forms.Form): 
    instances = forms.CharField(max_length=255) 
    tagName = forms.CharField(max_length=255) 

buildImage.html

<div class="form-group"> 
     <span class="col-md-1 col-md-offset-2 text-center"><label for="package">Docker Image Tag Name:</label></span> 
     <div class="col-md-8"> 
     <input type="text" name="tagName" id="tagName" placeholder="e.g node_image/istiogui" class="form-control" required> 
     /div> 
     <div class="col-md-8"> 
     <input type="text" name="filename" id="fileName" placeholder="e.g server.js" class="form-control" required> 
     /div> 
</div> 

回答

0

表單:

class BuildImageForm(forms.Form): 
    instances = forms.CharField(max_length=255) 
    tagName = forms.CharField(max_length=255) 


    def clean_instances(self, *args, **kwargs): 
     instances = self.cleaned_data.get("instances").lower() 
     return instances 

    def clean_tagName(self, *args, **kwargs): 
     tagName = self.cleaned_data.get("tagName") 
     if tagName[-3:] == '.js' 
      return tagName 
     return ValidationError('Invalid value') 

您的看法:

def your_view(request): 
    form = BuildImageForm(request.POST or None) 

    if request.method == 'POST': 
     form = BuildImageForm(request.POST or None) 
     if form.is_valid(): 
      # Or Use in valid form 
      item = form.commit(commit=False) 
      item.instances = item.instances.lower() 
      item.save() 
    return ...