2015-06-01 2 views
0

У меня есть профили для клиник и вы хотите добавить изображения для каждого из них. Я пытаюсь использовать django-imaging и получать эту ошибку. Я следовал документации и сделал следующее:ТипError: __init __() получил неожиданный аргумент ключевого слова 'image_field'

settings.py

INSTALLED_APPS = (
    'm1', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.sites', 
    'django.contrib.sitemaps', 
    'imaging', 

models.py

from imaging.fields import ImagingField 

class Clinic(models.Model): 
    name = models.CharField(max_length=500) 
    slug = models.CharField(max_length=200, unique = True) 
    photos = models.ImagingField() 

urls.py

url(r'^imaging/', include('imaging.urls')), 

Затем я попытался сделать syncdb и получил следующую ошибку:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 284, in execute 
    self.validate() 
    File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 310, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/Library/Python/2.7/site-packages/django/core/management/validation.py", line 34, in get_validation_errors 
    for (app_name, error) in get_app_errors().items(): 
    File "/Library/Python/2.7/site-packages/django/db/models/loading.py", line 196, in get_app_errors 
    self._populate() 
    File "/Library/Python/2.7/site-packages/django/db/models/loading.py", line 75, in _populate 
    self.load_app(app_name, True) 
    File "/Library/Python/2.7/site-packages/django/db/models/loading.py", line 99, in load_app 
    models = import_module('%s.models' % app_name) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 40, in import_module 
    __import__(name) 
    File "/Users/harisaghadi/code/meddy Production App/meddy1/models.py", line 10, in <module> 
    from imaging.fields import ImagingField 
    File "/Library/Python/2.7/site-packages/django_imaging-1.0.0-py2.7.egg/imaging/fields.py", line 6, in <module> 
    from imaging.models import Image 
    File "/Library/Python/2.7/site-packages/django_imaging-1.0.0-py2.7.egg/imaging/models.py", line 22, in <module> 
    class Image(models.Model): 
    File "/Library/Python/2.7/site-packages/django_imaging-1.0.0-py2.7.egg/imaging/models.py", line 31, in Image 
    options={'quality':90} 
TypeError: __init__() got an unexpected keyword argument 'image_field' 
+0

@MartijnPieters Добавлено полную TraceBack –

+0

'фотографии = models.ImagingField()' должен быть 'photos = ImagingField()', учитывая вашу строку импорта. –

ответ

1

Это ошибка в Django Imaging; см issue #11 in their tracker:

django-imagekit has been updated and the image_field kwarg has been renamed to source , its a bug in django-imaging and needs to be fixed.

Это переименовать took place quite some time ago, в декабре 2012 года

Работа вокруг будет принизить Django-Imagekit до версии 2.0.2, последний релиз с поля еще под названием image_field. Тем не менее, проект, который не был сохранен, чтобы исправить поле, переименованное из 2 с половиной лет назад, возможно, не является достойным производства. Проблема № 11 была подана более года назад и не была исправлена ​​за все это время.

-1

В вашем models.py, попробуйте
photos = ImagingField() вместо
photos = models.ImagingField()

Пожалуйста, почитайте документацию https://github.com/pielgrzym/django-imaging

Add ImagingField to desired model from imaging.fields import ImagingField

class Somemodel(models.Model): photos = ImagingField()

+0

Из трассировки * и * из кода, опубликованного OP: 'from imaging.fields импортирует ImagingField'. Префикс 'models.', вероятно, является ошибкой. В любом случае в проекте Django-Imaging нет 'models.ImagingField'. –

+0

@MartijnPieters, но OP имеет ошибку в models.py, исправление которого может решить проблему. Я также предоставил источник документации. – vicodin

+1

Посмотрите внимательно на трассу; это 'from imaging.fields импортирует ImagingField' импорт, который вызывает проблему. Затем посмотрите на мой ответ; это известная ошибка с проектом. –

Смежные вопросы