2011-03-24 13 views
0

看看這些參考資料等,我一直無法想出一個將所有東西結合在一起的好方法。如果表單無效,則問題與發送表單和內容有關。所以我正在做的是將每個生成的表單逐項拉出並顯示在.html文件中。使用django和css進行應用引擎驗證

所以我的問題是。我如何得到這個工作。現在我可以用CSS樣式表來顯示錶單,但是我似乎無法在字段中進行驗證,而且我總是生成一個錯誤。

class Quote(db.Model): 
    email = db.StringProperty(required=True) 

class QuoteForm(djangoforms.ModelForm): 
class Meta: 
     model = Quote 
     exclude = ['entry_time'] 

class MainPage(webapp.RequestHandler): 
def get(self): 
    form = QuoteForm(); 
    template_values = {}   
    path = os.path.join(os.path.dirname(__file__), 'index.html') 
    self.response.out.write(template.render(path, {'form': form})) 

def post(self): 
     data = QuoteForm(data=self.request.POST) 
     if data.is_valid(): 
       # save here 
       self.redirect('/Confirm.html') 
     else: 
      template_values = {}   
      path = os.path.join(os.path.dirname(__file__), 'index.html') 
      self.response.out.write(template.render(path, {'form': data})) 

和.html文件的一部分就在這裏

<div> 
    {{ form.email.errors }} 
    <label for="id_email">Your e-mail address:</label> 
    {{ form.email }} 
</div> 

它會什麼,我投入了電子郵件字段可正確驗證。我不知道爲什麼!?我失去了我已經放入表格的信息。我如何保留這些信息並實際進行適當的驗證。該模型表明,只需要一個非空白字符串,但沒有任何事情能滿足驗證。

+0

您只輸出窗體的一小部分,沒有任何表單標籤。要麼你刪除了相關的代碼,要麼你錯過了一些重要的東西。爲什麼不只是用{{form}}輸出由Django生成的整個表單? – 2011-03-25 02:22:22

+0

我只發佈了.html文件的相關部分。 .html文件中有表單標籤。之所以我想保持控制每個字段的CSS格式的原因 - 因此,我顯示每個領域的電子郵件是一個例子的原因。對於指導,我在這裏使用了部分參考資料:http://www.djangobook.com/en/2.0/chapter07/但我似乎無法看到我如何獲得我需要的格式和驗證。 – disruptive 2011-03-25 07:19:55

+0

@ user673600您可以用CSS來設計您的表單,只需使用Django的默認輸出 - 它會在每個元素上輸出ID。 – 2011-03-27 05:37:22

回答

1

您可以將自己的屬性添加到Django用於呈現表單元素的小部件(即控件)。這包括CSS樣式一class屬性:

class QuoteForm(djangoforms.ModelForm): 
    email = EmailField(widget = TextInput(attrs={'class':'textfield'})) 
    class Meta: 
     model = Quote 
     exclude = ['entry_time'] 

的缺點是,你需要從窗體類模型明確指定的字段。

相關問題