Pyuploadcare ImageField 上传选项在 useredit html 页面不可见

Pyuploadcare ImageField upload option is not visible at useredit html page

我已经在我的 django 应用程序中集成了 Pyuploadcare 模块。我在我的应用程序的 models.py 中添加了一个 ImageField,如下所示。个人用户访问的编辑页面不显示封面字段的图片上传。

在 django 的管理控制台中,pyuploadcare API 集成工作正常。

from pyuploadcare.dj.models import ImageField

class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, 
                                             on_delete=models.CASCADE)
    date_of_birth = models.DateField(blank=False, null=True)
    img = models.ImageField(upload_to=upload_to, blank=True, db_index=True)
    slug = models.SlugField(max_length=200, blank=True)
    cover = ImageField(blank=True, manual_crop="") 

User_edit页面如下图:

<pre>
{% block content %}
    <div class="edit-form">
        <h1>Edit your account</h1>
        <p>You can edit your account using the following form:</p>
        <form action="." method="post" enctype="multipart/form-data" id="controlForm">
            {{ user_form.as_p }}
            {% csrf_token %}
            {{ profile_form.as_p}}
            <p><input type="submit" value="Save changes"></p>
        </form>
    </div>
{% endblock %}
</pre>

我已经尝试更新从 forms.py 生成的表单,如下所示


class ProfileEditForm(forms.ModelForm):
     cover = ImageField(label='')

    class Meta:
         model = Profile
         fields = ('date_of_birth', 'img', 'cover')
         widgets = {
                'date_of_birth': DateInput(),
         }   

表单生成隐藏类型的封面

预期结果是

<tr><th></th><td><input type="file" name="cover" value="https://ucarecdn.com/182065fa-d558-47e5-beb6-0d0c3dd8baf2/" role="uploadcare-uploader" data-public-key="bce890ec49219565dc75" data-integration="Django/2.1.7; PyUploadcare-Django/2.6.0" data-images-only="" re
quired id="id_cover"></td></tr>

实际结果是在页面渲染期间从views.py

中捕获的

实际结果是:

<tr><th></th><td><input type="hidden" name="cover" value="https://ucarecdn.com/182065fa-d558-47e5-beb6-0d0c3dd8baf2/" role="uploadcare-uploader" data-public-key="bce890ec49219565dc75" data-integration="Django/2.1.7; PyUploadcare-Django/2.6.0" data-images-only="" re
quired id="id_cover"></td></tr>

结果是从 views.py 我生成的配置文件表单中捕获的

下面提供了 Github link 作为参考,受影响的应用程序名称是帐户。 https://github.com/bikirandas/OmexOnline

下面的 GIthub 中也出现了同样的问题 link https://github.com/bikirandas/OmexOnline/issues/5

呈现的实际结果 HTML 确实是预期结果,如果您使用 pyuploadcare.dj.models.ImageField 您实际捕获的字符串包含用户上传文件的 CDN URL。

您很可能忘记将 javascript 库加载到您的页面。只需将其添加到您的模板中:

<script>
  UPLOADCARE_PUBLIC_KEY = '*your key*';
</script>
<script src="https://ucarecdn.com/libs/widget/3.x/uploadcare.full.min.js"></script>

它的工作方式与管理页面相同。在管理页面上,正在加载这些媒体 automatically