Параметр загрузки Pyuploadcare ImageField не отображается на странице HTML - PullRequest
0 голосов
/ 29 марта 2019

Я встроил модуль Pyuploadcare в свое приложение django.Я добавил ImageField в models.py моего приложения, как показано ниже.Загрузка изображения для поля обложки не отображается на странице редактирования, к которой обращается отдельный пользователь.

, где интеграция API pyuploadcare работает нормально с консоли администратора django.

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 показана ниже:

<code><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 %}

Я попытался обновить форму, созданную из файла 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 приведена ниже. Имя приложения влияет на учетные записи.https://github.com/bikirandas/OmexOnline

Проблема также создана для того же в GIthub по ссылке ниже https://github.com/bikirandas/OmexOnline/issues/5

1 Ответ

1 голос
/ 29 марта 2019

Фактический результат в отображаемом HTML действительно является ожидаемым результатом, если вы используете pyuploadcare.dj.models.ImageField ваши фактически записанные строки, которые содержат URL-адреса CDN для загруженных файлов от ваших пользователей.

Скорее всего, вы забылиЗагрузите библиотеку JavaScript на свою страницу.Просто добавьте это в ваш шаблон:

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

И он будет работать так же, как на странице администратора.На странице администратора эти медиа загружаются автоматически .

...