Django File-Transfers Сохранить в новый файл для каждого пользователя - PullRequest
0 голосов
/ 26 февраля 2012

Я пытаюсь загрузить файлы, используя Django-filetransfer, и мне было интересно, как импортировать имя пользователя, чтобы использовать в качестве имени файла, в котором сохраняются закачки. Сейчас я использую User.username, но это недействительным. Думаю, главный вопрос - как получить доступ к атрибутам пользователя из models.py. Ниже мои models.py:

from django.db import models
from django.contrib.auth.models import User, UserManager

class UploadModel(User,models.Model):
    title = models.CharField(max_length=64, blank=True)
    user = models.ForeignKey(User)
    file = models.FileField(upload_to='./uploads/'+str(User.username))


    @property
    def filename(self):
    return self.file.name.rsplit('/', 1)[-1]

ОБНОВЛЕНИЕ: приложение / загрузки / models.py

from django.db import models
from django.contrib.auth.models import User, UserManager

def uploadmodel_file_upload_to(instance, filename):
    return 'uploads/%s/%s' % (instance.user.username, filename)

class UploadModel(models.Model):
    user = models.ForeignKey('auth.user')
    file = models.FileField(upload_to=uploadmodel_file_upload_to)

TemplateSyntaxError at / upload Ошибка базы данных при рендеринге: столбец upload_uploadmodel.user_id не существует ЛИНИЯ 1: ВЫБЕРИТЕ "upload_uploadmodel". "Id", "upload_uploadmodel". "User ...

1 Ответ

3 голосов
/ 26 февраля 2012

Атрибуты модели официально определяются, когда Python анализирует код models.py.Вы должны использовать обратный вызов для upload_to , чтобы сгенерировать путь к файлу загрузки с использованием пользовательского экземпляра, например:

def uploadmodel_file_upload_to(instance, filename):
    return 'uploads/%s/%s' % (instance.user.username, filename)

class UploadModel(models.Model):
    user = models.ForeignKey('auth.user')
    file = models.FileField(upload_to=uploadmodel_file_upload_to)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...