一个用于创建带有注释元数据的图像字段的wagtail模块
项目描述
允许用户将自定义注释数据与Wagtail图像结合。通过在图像上点击点输入注释,然后以相对x,y坐标和可选的额外表单数据存储注释数据。
要求
Wagtail >= 2.7
Django >= 2.0
安装
使用pypi安装,并将 wagtail-annotations 添加到您的 INSTALLED_APPS 中
pip install wagtail-annotations
使用
扩展BaseAnnotationForm以定义应与注释一起存储的数据。AnnotationsField将注释数据存储为json,在检索时转换为字典。
from django import forms
from django.db import models
from wagtail.wagtailcore.models import Page
from wagtail_annotations.edit_handlers import AnnotatedImagePanel
from wagtail_annotations.fields import AnnotationsField
from wagtail_annotations.forms import BaseAnnotationForm
class AnnotationForm(BaseAnnotationForm):
title = forms.CharField()
about = forms.TextField()
class TestPage(Page):
image = models.ForeignKey('wagtailimages.Image', blank=True, null=True,
on_delete=models.SET_NULL, related_name="+")
annotations = AnnotationsField(blank=True)
content_panels = Page.content_panels + [
# First parameter - name of the image field
# Second parameter - name of the annotation field
# annotation_form - optional, the form used for annotations if you need to store data for each point
AnnotatedImagePanel(
'image', 'annotations',
annotation_form=AnnotationForm(), heading='Annotated Image'
)
]
<div class='image-container'>
{% image page.image('width-500') %}
{% for annotation in page.annotations %}
<div
class='annotation'
style="left: {{ annotation.x * 100 }}%; top: {{ annotation.y * 100 }}%;"
>
<h3>{{ annotation.fields.title }}</h3>
<p>{{ annotation.fields.about }}</p>
</div>
{% endfor %}
</div>
.image-container {
position: relative;
}
.image-container > img {
width: 100%;
height: auto;
}
.annotation {
position: absolute;
}
开发
您可以使用包含的测试应用进行开发
> npm install && npm run build
> pip install -e .
> export DJANGO_SETTINGS_MODULE=settings
> django-admin migrate
> django-admin createsuperuser
...
> django-admin runserver
有一个包含用于测试的chromerdriver的Dockerfile,如果您没有安装chromedriver,可以本地构建和运行它
> docker build -f Dockerfile.test -t annotation-test .
> docker run annotation-test
> docker run -e WAGTAIL_VERSION=27 -e DJANGO_VERSIONS='30,31' annotation-test
项目详细信息
关闭
wagtail-annotations-3.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c67324bce83c33d6b0f118bd9c63f261ae460854d465393a25681feb4212e6b8 |
|
MD5 | 5a1d1eac77c5d0e37af9517c2d1e9d3e |
|
BLAKE2b-256 | fb14f2e74446a2d2570bbd0766d981e90bf8832a6c027593bc1d13444d7a4582 |
关闭
wagtail_annotations-3.0.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e553262bd0fea27f4cf948988c08417de5dd3a71554bc90e63f4a58153b7c761 |
|
MD5 | a93fcfa5e518da413a0fb93b158c4d78 |
|
BLAKE2b-256 | e5494ce57b036900f2f6a57a8fae0760b2f91328df013dd15a4a7c3dfb628ff5 |