Есть ли порядок, в котором модели генерируются в базе данных? - PullRequest
0 голосов
/ 29 ноября 2010

В моем проекте мне нужно изменить место, куда загружаются файлы. Это делается с помощью FileSystemStorage. Путь, в который загружаются файлы, должен быть прост в настройке, например, с помощью администратора Django.

from django.core.files.storage import FileSystemStorage  
from django.db import models  

class Setting(models.Model):  
    entry = models.CharField(primary_key=True, db_column="entry", max_length=50)  
    value = models.CharField(db_column="value", max_length=250, blank=True, null=True)

    def __unicode__(self):
        return "%s" %(self.entry)

    class Meta:
        db_table = 'settings'
        verbose_name = 'Setting'
        verbose_name_plural = 'Settings'    

fs =  FileSystemStorage(location=Setting.objects.get(entry__exact='upload_path').value)      

def generate_filename(instance, filename):  
    ...

class FileImport(models.Model):
    data_file = models.FileField(_('Data file'), upload_to=generate_filename, storage=fs)

Я получаю эту ошибку:

django.db.utils.DatabaseError: отношение "настройки" не существует LINE 1: ... ВЫБРАТЬ «настройки». «Запись», «настройки».

для строки, в которой создается FileSystemStorage. Есть ли способ сказать Django сначала создать настройки таблицы (для настройки объектов), а затем заполнить эту таблицу некоторыми приборами?

1 Ответ

0 голосов
/ 29 ноября 2010

Это не решит вашу проблему, так как таблица Settings по-прежнему не будет заполнена.Переместите его в атрибут класса, который инициализируется при первом его создании.

...