Ответы пользователя по тегу Django
  • Почему возникает ошибка?

    igor_shevchenko
    @igor_shevchenko
    Веб-разработчик
    Ошибка возникает потому что ConfigParser — это модуль стандартной библиотеки, который в третьем питоне переименовали вconfigparser. Поэтому он и не находится у вас. Этот модуль требуется, потому что вы ставите пакет для второго питона. Попробуйте sudo apt-get install python3-psycopg2
    Ответ написан
  • Как обработать изображения в base64 в Django?

    igor_shevchenko
    @igor_shevchenko
    Веб-разработчик
    Если вы хотите сохранить эти изображения в поле модели, то это делается так:

    from base64 import b64decode
    from django.core.files.base import ContentFile
    
    image_data = b64decode(b64_text)
    my_model_instance.cool_image_field = ContentFile(image_data, 'whatup.png')
    my_model_instance.save()
    Ответ написан
    Комментировать
  • Как выгружать изображения на сайт. Django?

    igor_shevchenko
    @igor_shevchenko
    Веб-разработчик
    ForeignKey — это отношение много-к-одному. Вы можете создать много изображений, поместив им в поле post одну и ту же новость.

    Поэтому post.image — это не само изображение, а менеджер, который возвращает все изображения для этой новости. Иными словами, post.image вернет то же самое, что и Images.objects.filter(post=post). Поправить это можно несколькими способами.

    Если вы хотите, чтобы всё просто заработало без значительных изменений:

    <img src="{{ new.image.first().url }}">

    Если у новости действительно может быть много изображений
    {% for image in new.image.all %}
         <img src="{{ image.image.url }}">
    {% endfor %}


    Если у новости может быть только одно изображение:

    class Images(models.Model):
        post = models.OneToOneField(News, default=None, related_name="image")
        image = models.ImageField(upload_to=settings.MEDIA_ROOT,
                                  verbose_name="Image")


    OneToOneField — это отношение один-к-одному. В этом случае post.image уже будет сразу возвращать изображение.
    Ответ написан
  • Как придумать алгоритм по проекту в виде тестов?

    igor_shevchenko
    @igor_shevchenko
    Веб-разработчик
    Я вижу только такой вариант:
    1. Для всех тестов пользователь должен авторизоваться на вашем сайте через Фейсбук. Раз тут висит тег Django, то порекомендую для этого библиотеку allauth.
    2. Для каждого конкретного теста с сервера идут запросы к API Фейсбука за данными, которые нужны для этого теста. Опять же могу посоветовать использовать facebook-sdk.
    3. Когда данные получены, они обрабатываются уже с учетом логики этого теста. Логика получается разной для каждого теста, поэтому будет логично выделить каждый тест в отдельный класс.

    Еще хочу предупредить о том, что у Фейсбука довольно много ограничений по работе с API. Например, уже с двумя тестами из примера возникнут проблемы:
    • Фейсбук не отдает по API полный список друзей пользователя. Вообще никак. Максимум, что можно получить, это список друзей, которые тоже авторизовались на вашем сайте.
    • Возраст пользователя получить можно, но это либо будет диапазон (13–17, 18–21 или 21+), либо вам придется запрашивать разрешение user_birthday. Чтобы вы могли получать это разрешение, придется пройти ревью Фейсбука (отправить им на проверку текст на английском, описывающий, зачем вам разрешение, и скринкаст, демонстрирующий это).


    У Вконтакте таких ограничений меньше, можете попробовать с его API.
    Ответ написан