2010-12-09 69 views
6

我正在使用由django爲我生成的表單。在我的博客中發佈帖子後,我將它用作評論表單。如何爲表單字段設置django註釋的格式?

目前它呈現很好,但它不很好地對齊。 這就是我所擁有的。 alt text 這就是我想要的。 alt text

感謝

編輯:這是結果,當我的用戶{{form.as_table}}

alt text

+0

你如何在模板中渲染你的表單? – 2010-12-09 11:02:47

+0

目前全部都是自動的。我沒有指定任何東西。如果我在我的模板/註釋目錄中創建一個form.html文件並使用{{form.as_p}},那麼它呈現隱藏字段。 :P – darren 2010-12-09 11:57:17

回答

3

發佈我的解決方案希望它能幫助別人oneday。 我知道你會用CSS來設計字段,但不知道如何將類分配給每個項目。但是,如果您查看提供的默認模板,您會注意到在foreach循環中使用if語句將錯誤類分配給了一個字段,該foreach循環會自動生成表單中的每個字段。

{% for field in form %}  
< p{% if field.errors %} 
    class="error" 
{% endif %} 
    {{ field.label_tag }}<'/' p> 
{% endfor %} 

所以我添加到這個功能。

< p{% if field.errors %} 
    class="error" 
{% endif %} 
{% ifequal field.name "honeypot" %} 
    id="hide" 
{% else %} 
    id="left" 
{% endifequal %}> 
    {{ field.label_tag }}<'/' p> 

我的CSS是

#hide{ 
    display:none; 

} 

#left{ 
    width: 200px; 
    text-align: left; 

} 

#right{ 
    width: 300px; 
    text-align: left; 

} 

現在你可以在你的CSS文件中輕鬆設置設置你的類您可以將類或ID。這是爲了評論。 如果您使用{{form.as_p}}或{{form.as_table}}生成表單,那麼您只需在css中設置一個通用表單類來對其進行設置。

form { 
width: 350px; 
padding: 20px; 
border: 1px solid #270644; 
} 
2

使用默認{% render_comment_form for app.model %}將產生:

<p> 
     <label for="id_name">Name</label> 
     <input id="id_name" type="text" name="name" maxlength="50"> 
    </p> 
    <p> 
     <label for="id_email">Email address</label> 
     <input type="text" name="email" id="id_email"> 

</p> 
... etc 

因此,您可以使用目標在你的CSS樣式表label

label { 
    width: 15%; 
} 
4

我知道這是一個有點晚,但對於其他人,你可以試試這個

<table> 
{{ form.as_table }} 
</table> 

它修復了惱人的格式問題,看起來不錯。

0

this post中有詳細的方法,但是,我發現有時小部件屬性可能無法按照您的方式工作。

不過,最好的和簡單的方法是使用CSS:

渲染你的頁面包含表單域,並做一些檢查(右鍵單擊>在Chrome檢查或F12爲例)知道HTML標記您的表單在渲染時生成。然後你可以很容易地寫你的CSS。

您的形式inputtextarea字段,以便你的CSS將是:

input, textarea{ 
    width:350px; 
} 

不要忘記你的HTML模板的頂部調用你的CSS文件:

<link rel="stylesheet" type="text/css" href="{% static 'styles/form.css' %}"> 

下面是我對自己的形式的一個快照:

enter image description here

相關問題