2011-08-20 71 views
1

我有一個簡單的表單,用於上傳個人資料圖片,然後顯示一個顯示上傳內容的縮略圖。 HTML代碼是:如何刪除由Django中的表單創建的輸入/字段

<form action="{% url 'base-welcome' %}" enctype="multipart/form-data" method="post"> 
    {% csrf_token %} 
<ul> 
<li><span>Upload A Profile Picture:</span> <img src="{{ user.profile.get_thumbnail }}">{{ profile_form.picture }}</li> , then closing elements, etc.. 

問題是表單在「li」中創建不需要的元素。見下圖: enter image description here

「當前」和「更改」已創建。我已經隱藏了一個使用display:none創建的複選框。我不能用這些元素來做到這一點,因爲它們只是生成的文本。

我認爲這是models.py/views.py頁面的問題,但我可能是錯的。只是尋找一個簡單的HTML/CSS修復。非常感謝!!

+1

這是Django的? – JJJ

+0

是的,它是Django! – sthomps

+0

你可以發佈正在創建的html,並顯示正在添加什麼額外的元素? – Nayish

回答

-1

你只是想隱藏一些文字?我有一段時間沒有碰過HTML/CSS,但是你不能把文本放在div或span中,然後隱藏它嗎?

+0

我可以,但我不想隱藏div,只是裏面的文字。我無法控制HTML端的文本,它是自動生成的。 – sthomps

2

它看起來像圖片字段正在使用ClearableFileInput小部件。要使用標準的FileInput部件(沒有這些多餘的話和複選框),這樣做只是在你的形式:

picture = forms.ImageField(upload_to='/path/', widget=forms.FileInput) 
-1

設置color: white;該元素,那麼所有文本將是「看不見」的笑。

0

在你只需要渲染你的形式的情況下手動:)

您既可以編寫自己的助手 - 我認爲這是即。自定義過濾器:{{ form.field|as_file_input_field }}或者你可以使用一些外部的助手,如:http://djangopackages.com/grids/g/forms/

我還是建議編寫自己的助手只是爲了學習形式如何Django的渲染工作:)

你也可以看看這裏的一些樣品我們如何試圖解決這個問題,而之前:https://github.com/efabryka/django-template_widgets :)

這是ImageField的默認控件的呈現方式 - 也許這將是值得的:https://github.com/django/django/blob/master/django/forms/widgets.py#L298

+0

ad 1.'{{profile_form.picture}}'這是在django中自動渲染字段的方法:)它會返回一些預定義的默認值。 ad 2.想象一下 - 你的應用程序中有多個表單,並且你需要以自定義的方式渲染它們,因爲你的設計,所以你會黑客攻擊所有表單或只是尋找銀子彈解決方案:)我是不是說這是最好的辦法 - 我只是說這是優雅的:) – bx2

相關問題