У меня есть модель, которая не создает (некоторые из) HTML, которые (должны) представляют поля модели. Как вы можете видеть из вывода внизу, он просто выводит пустую строку, где он должен выводить заголовок и, по-видимому, кнопку обзора (или что-то - право?) Для файлового поля.Форма модели Django, не создающая ожидаемых HTML
#views.py
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
else:
form = UploadFileForm()
return render_to_response('files/upload_file.html', { 'form': form })
#models.py
from django import forms
from django.db import models
from django.forms import ModelForm
class UploadFile(models.Model):
title = forms.CharField(max_length = 50)
theFile = forms.FileField()
def __unicode__(self):
return str(title)
class UploadFileForm(ModelForm):
class Meta:
model = UploadFile
#upload_file.html
<form action="" method="POST" enctype="multipart/form-data">
{{ form }}
<input type="submit" value="Upload File">
</form>
#The HTML output
<form action="" method="POST" enctype="multipart/form-data">
<input type="submit" value="Upload File">
</form>
Хммм, я вижу. Это (вроде) произошло со мной, так как я написал что-то подобное, используя models.foo, а не forms.foo без проблем. Однако документация Django специально использует forms.foo, когда речь идет о загрузке файлов, в частности, так что я использовал. Интересно. Спасибо! – Harv 2010-12-03 03:01:56