2017-05-31 2 views
0

Ich versuche, den dynamischen Upload-Pfad für django FileFiled verwenden. Das ist mein Modell:Django Migration fehlschlägt mit FileField mit dynamischen Upload-Pfad

def use_assignment_path(instance, filename): 
    return 'assignment/%s/%s' % (instance.name, filename) 


class Assignment(models.Model): 
    admin = models.ForeignKey(Admin) 
    name = models.CharField(max_length=50, unique=True) 
    lang = models.CharField(max_length=5, default='c', choices=(('c', 'c'), ('java', 'java'))) 
    pointsRecommended = models.IntegerField() 
    file0 = models.FileField(upload_to=use_assignment_path) 
    file1 = models.FileField(upload_to=use_assignment_path, default='', blank=True) 

Wenn ich versuche, um die Modelle zu migrieren ich diese Fehlermeldungen erhalten:

Traceback (most recent call last): 
File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) 
File "/home/mb/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line 
utility.execute() 
File "/home/mb/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 355, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/home/mb/.local/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv 
self.execute(*args, **cmd_options) 
File "/home/mb/.local/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute 
output = self.handle(*args, **options) 
File "/home/mb/.local/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 83, in handle 
executor = MigrationExecutor(connection, self.migration_progress_callback) 
File "/home/mb/.local/lib/python3.5/site-packages/django/db/migrations/executor.py", line 20, in __init__ 
self.loader = MigrationLoader(self.connection) 
File "/home/mb/.local/lib/python3.5/site-packages/django/db/migrations/loader.py", line 52, in __init__ 
self.build_graph() 
File "/home/mb/.local/lib/python3.5/site-packages/django/db/migrations/loader.py", line 203, in build_graph 
self.load_disk() 
File "/home/mb/.local/lib/python3.5/site-packages/django/db/migrations/loader.py", line 114, in load_disk 
migration_module = import_module("%s.%s" % (module_name, migration_name)) 
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module 
return _bootstrap._gcd_import(name[level:], package, level) 
File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
File "/media/sf_Websites/HM/trunk/assignments/models/migrations/0001_initial.py", line 11, in <module> 
class Migration(migrations.Migration): 
File "/media/sf_Websites/HM/trunk/assignments/models/migrations/0001_initial.py", line 23, in Migration 
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 
AttributeError: module 'models' has no attribute 'AutoField' 

Wenn keine Ahnung, warum es auftritt, wenn ich Pfad eines statischen Upload bin mit es funktioniert einwandfrei.

Ich habe mehrere Beiträge mit ähnlichen Fragen gelesen, aber nichts half, bis Sie wissen.

Tanke dich!

Antwort

0

Es sieht aus, als ob Ihre App-Namen models mit django.db.models clashing. Versuchen Sie, Ihre App umzubenennen, löschen Sie die anfängliche Migration und führen Sie dann erneut makemigrations und migrate aus.

+0

Danke das hat funktioniert! – Max

0

löschen "/media/sf_Websites/HM/trunk/assignments/models/migrations/0001_initial.py" Datei und versuchen Sie es erneut

+0

versuchte es funktioniert nicht – Max

Verwandte Themen