ошибка типа при создании модели django с файловым полем

Получение следующей ошибки при попытке создать (и сохранить) модель django с файловым полем:

Ошибка типа в /admin/app_name/template/add/

приведение к Unicode: нужна строка или буфер, целое найдено

 Request Method:     POST 

 Request URL:        http://localhost:8000/admin/app_name/template/add/

 Django Version:     1.4.3
 
 Exception Type:     TypeError
 
 Exception Value:    coercing to Unicode: need string or buffer, int found

 Exception Location: path_to_python\python\lib\site-packages\django\utils\encoding.py
                     in force_unicode, line 71

вот models.py :-

class Template(models.Model):

    title = models.CharField(max_length=300, unique=True) 
    template = models.FileField(upload_to='templates')

    def __unicode__(self): 
        return self.title 


class TemplateAdmin(admin.ModelAdmin):

    def upload_file(request,*args, **kwargs):

        if request.method == 'POST':

            instance = Template(template=request.FILES['template'])
            instance.title =request.POST['title']
            instance.save()

admin.site.register(Template, TemplateAdmin)

вот настройки.py:-

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), "media")

Кроме того, хотя эта ошибка возникает при попытке сохранить (создать) объект шаблона, файл все же кажется загруженным в указанный каталог (поскольку я могу найти его в этом каталоге)... Однако экземпляр объекта не создается (как Template.objects.all() возвращает пустой список).


person apratimankur    schedule 18.03.2013    source источник


Ответы (1)


решено сейчас...!

проблема была из-за этой глупой опечатки (которую я не мог заметить до сих пор) ---

class Template(models.Model):

    title = models.CharField(max_length=300, unique=True) 
    template = models.FileField(upload_to='templates')

    def __unicode__(self): 
        return self.title 

    def __unicode__(self):
        return self.id
person apratimankur    schedule 19.03.2013