Image 摇尾>;将gallery_图像添加到多个应用程序(页面模型实例)
我遵循了教程 并添加到我的博客应用程序Image 摇尾>;将gallery_图像添加到多个应用程序(页面模型实例),image,wagtail,Image,Wagtail,我遵循了教程 并添加到我的博客应用程序class BlogPageGalleryImage(可订购):然后def main_image(self):添加到class BlogPage(Page):中,效果良好。 但我还有两个应用程序(项目和事件),页面实例类似于博客,不能以同样的方式添加图库。 我应该在Page类本身中实现gallery吗 我有4个应用程序(blog、about、events、projects),模型定义中分别有*IndexPage、*Page、*pagegalleryimage
class BlogPageGalleryImage(可订购):
然后def main_image(self):
添加到class BlogPage(Page):
中,效果良好。
但我还有两个应用程序(项目和事件),页面实例类似于博客,不能以同样的方式添加图库。 我应该在Page类本身中实现gallery吗 我有4个应用程序(blog、about、events、projects),模型定义中分别有*IndexPage、*Page、*pagegalleryimage 例如,在事件应用程序的models.py中,我定义了
class EventPageGalleryImages(Orderable):
page = ParentalKey(EventPage, on_delete=models.CASCADE, related_name='gallery_images')
image = models.ForeignKey( 'wagtailimages.Image', on_delete=models.CASCADE, related_name='+' )
caption = models.CharField(blank=True, max_length=250)
panels = [ ImageChooserPanel('image'), FieldPanel('caption'), ]
但是我通过makemigrations得到了一个错误:
(ma_env) ➜ ma_app git:(0.15) ✗ ./manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
autoreload.raise_last_exception()
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/utils/autoreload.py", line 77, in raise_last_exception
raise _exception[1]
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/core/management/__init__.py", line 337, in execute
autoreload.check_errors(django.setup)()
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/utils/autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/home/DEV/ma_env/lib/python3.6/site-packages/django/apps/config.py", line 211, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/DEV/ma_app/events/models.py", line 24, in <module>
class EventPage(Page):
File "/home/DEV/ma_app/events/models.py", line 53, in EventPage
class EventPageGalleryImages(Orderable):
File "/home/DEV/ma_app/events/models.py", line 54, in EventPageGalleryImages
page = ParentalKey(EventPage, on_delete=models.CASCADE, related_name='gallery_images')
NameError: name 'EventPage' is not defined
(马乌环境)➜ 马欧应用吉特:(0.15)✗ ./manage.py运行服务器
使用StatReloader监视文件更改
线程django主线程中出现异常:
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python3.6/threading.py”,第916行,在内部引导中
self.run()
文件“/usr/lib/python3.6/threading.py”,第864行,运行中
自我目标(*自我参数,**自我参数)
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/utils/autoreload.py”,第54行,在包装器中
fn(*args,**kwargs)
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/core/management/commands/runserver.py”,第109行,在内部运行
autoreload.raise\u last\u异常()
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/utils/autoreload.py”,第77行,在raise\u last\u异常中
raise_异常[1]
文件“/home/DEV/ma_-env/lib/python3.6/site-packages/django/core/management/_-init___;.py”,第337行,在execute中
自动加载检查错误(django.setup)()
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/utils/autoreload.py”,第54行,在包装器中
fn(*args,**kwargs)
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/_init__.py”,第24行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/apps/registry.py”,第114行,在填充中
app_config.import_models()
文件“/home/DEV/ma_env/lib/python3.6/site packages/django/apps/config.py”,第211行,在导入模型中
self.models\u module=导入模块(models\u module\u name)
文件“/usr/lib/python3.6/importlib/_init_uuu.py”,第126行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第994行,在_gcd_导入中
文件“”,第971行,在_find_和_load中
文件“”,第955行,在“查找”和“加载”中解锁
文件“”,第665行,在“加载”中
exec_模块中第678行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“/home/DEV/ma_app/events/models.py”,第24行,在
类事件页(第页):
EventPage中第53行的文件“/home/DEV/ma_app/events/models.py”
类EventPageGalleryImage(可订购):
EventPageGalleryImage中的文件“/home/DEV/ma_app/events/models.py”,第54行
page=ParentalKey(EventPage,on_delete=models.CASCADE,related_name='gallery\u images')
NameError:未定义名称“EventPage”
从堆栈跟踪的最后几行,看起来您已经在EventPage
的定义中定义了eventpagegalleryimage
:
class EventPage(Page):
# ...
class EventPageGalleryImages(Orderable):
page = ParentalKey(EventPage, on_delete=models.CASCADE, related_name='gallery_images')
# ...
这是失败的,因为您在
ParentalKey
定义中引用了EventPage
,但是EventPage
的定义尚未完成。从第二个类定义中删除缩进应该可以解决这个问题。“不能以相同的方式向它们添加库”-为什么不?当你尝试时会发生什么?嗨gasman,谢谢你的摇尾!!!我有4个应用程序(blog、about、events、projects),模型定义中分别有*IndexPage、*Page、*pagegallerymages。噢,python真是个愚蠢的错误。:/谢谢!(我已经回答了,但是我没有看到这里的帖子。)