• Можно ли вывести форму в цикле?

    @serhiops
    Python/JavaScript/C++
    Циклом выводить ничего не нужно. Есть такое понятие как Наборы форм.
    Для создания наборов форм, связанных с моделями, применяется быстрое объявление посредством фабрики классов - функции modelformset_factory из модуля django.forms.
    Более детально в русскоязычной документации
    Ответ написан
  • Можно ли перебрать переменные по имени?

    @serhiops
    Python/JavaScript/C++
    Сможете перебирать только если положите переменные в список или любой другой итерируемый обьект.
    Ответ написан
    Комментировать
  • Ошибка с sqlite3.OperationalError: near "S": syntax error как решить?

    @serhiops
    Python/JavaScript/C++
    Вы не совсем правильно строите запрос. Делая его таким образом вы ,как минимум, не защищаете себя от sql-инъекций. Попробуйте сделать так:
    cursor.execute("INSERT INTO users VALUES(?, ?, ?, ?, ?, ?)", (member, member.id, 0, 0, 1, guild.id))
    Ответ написан
    6 комментариев
  • Работа с CSV-файлами в Python?

    @serhiops
    Python/JavaScript/C++
    Чтобы
    понять, как это все работает
    нужно смотреть документацию/гайды. Абсолютно ничего сложного в этом нет.
    Чтение
    Запись
    Если будет возникать конкретная ошибка, то уже пиши в коментариях.
    Ответ написан
    1 комментарий
  • Если бы вам предложили написать свою ОС с нуля (никаких Linux), какой ЯП вы бы выбрали?

    @serhiops
    Python/JavaScript/C++
    Операционные системы пишут ,в основном, на следующих языках: С, С++, C#, язык ассамблера. Обычно, их смешивают - где особо производительность не нужна - С++, С#. В местах, где важна каждая миллисикунда - С, ассамблер.
    На самом деле, как альтернативу в данный момент я вижу только Go. Ненамного медленнее, а скорость разработки растет в разы.
    Проблема в том, что большинство популярных ныне языков программирования попросту не настолько низкоуровневые, чтобы сделать хоть что-то весомое в этой области.
    На практике вам не придется выбирать на каком языке писать ОС, потому что 95% разработки это поддерживание/переделывание старого кода.
    Ответ написан
    9 комментариев
  • Как вывести связные модели в шаблон?

    @serhiops
    Python/JavaScript/C++
    1. То, что вы показали не является раширенной моделью пользователя. Вы создали отдельную модель и просто связали ее по первичному ключу с моделью User. Вот так выглядит разширенная модель пользователя:
    models.py
    from django.contrib.auth.models import AbstractUser
    class CustomUser(AbstractUser):
        code = models.IntegerField(verbose_name="Код", blank=True, null=True)
        is_salesman = models.BooleanField(default = False, verbose_name="Продавец")
        age = models.IntegerField(verbose_name="Возраст", blank=True, null=True)
        number_of_phone =  models.CharField(max_length=13,verbose_name="Номер телефона", blank=True, null=True)
        city = models.CharField(max_length=64, verbose_name="Населенный пункт", blank=True, null=True)
        company = models.CharField(max_length=64, verbose_name="Компания", default="company name", blank=True, null=True)

    settings.py
    AUTH_USER_MODEL = 'your_app_name.CustomUser'
    В так случае вы сможете обращаться к полям модели напрямую в шаблоне(как и обычно)
    {{ user.number_of_phone }}
    2. Если исходить от того, что вы имеете, то как выход я вижу передавание текущего профиля пользователя в шаблон через контект в вашем views.py:
    ...
    profile = Profile.objects.get(user = request.user)
    ...
    Ответ написан
  • Как замерить производительность i/o?

    @serhiops
    Python/JavaScript/C++
    #include <chrono>
    #include <iostream>
    
    class Timer
    {
    public:
        Timer()
        {
            start = std::chrono::high_resolution_clock::now();
        }
        ~Timer(){
            end = std::chrono::high_resolution_clock::now();
            std::chrono::duration<float> duration = end - start;
            std::cout << "Time : "<<duration.count()<<endl;
        }
    private:
        std::chrono::time_point<std::chrono::high_resolution_clock> start, end;
    };
    int main(){
        Timer t;
        //весь остальной код
    }

    В конце выполнения программы в консоль выведется время, потраченное на его выполнение
    Ответ написан
    3 комментария
  • Как очистить файл json при помощи python?

    @serhiops
    Python/JavaScript/C++
    with open("path", "w") as f:
        pass
    Ответ написан
    Комментировать
  • Как принять body из POST запроса и вернуть данные на front?

    @serhiops
    Python/JavaScript/C++
    Достаточно странное прописание api...
    class SizeDiskSet(viewsets.ReadOnlyModelViewSet):
    
        queryset = SizeDisk.objects.all()
        serializer_class = SizeDiskSerializer
        permission_classes = [permissions.AllowAny]
    
        def get_serializer_class(self):
            return SizeDiskSerializer

    1.Вы прописали явно класс сериалайзера в атрибутах класса, зачем вы пишете функцию get_serializer_class?
    2. Вы прописуете модификатор доступа permissions.AllowAny, но это поведение по-умолчанию, явно его указывать не нужно(если вы ,конечно, не изменяли значение по умолчанию в settings.py)
    3.Вас не смущает, что вы используете viewsets.ReadOnlyModelViewSet для добавления в базу данных? Разве название не говорит само за себя?

    serializers.py:
    from rest_framework import serializers
    from .models import YourModel
    
    class YourModelSerializer(serializers.ModelSerializer):
        class Meta:
            model = YourModel
            fields = "__all__"  #Выберет все поля, но рекомендуется указываять явно при помощи списка или кортежа:['field1', 'field2']

    api.py:
    from rest_framework.viewsets import ModelViewSet
    from .serializers import YourModelSerializer
    from .models import YourModel
    
    class YourModelViewset(ModelViewSet):
        queryset = YourModel.objects.all()
        serializer_class = YourModelSerializer

    urls.py
    from django.urls import path, include
    from . import api
    from rest_framework import routers
    
    router = routers.SimpleRouter()
    router.register(r'model-list', api.YourModelViewset)
    
    urlpatterns = [
        ...
       path('api/v1', include(router.urls)),
    ]

    Теперь список всех записей будет доступен по ссылке api/v1/model-list/
    По этой же ссылке вы можете делать POST И GET запросы.
    По адресу api/v1/model-list/pk/ Вы получите 1 запись по первичному ключу
    По этой ссылке вы сможете делать GET, PUT, PATCH и DELETE запросы (мб еще какие-то но я другие не использовал).
    После того, как вы все это проделаете можно будет приступить к выполнению задачи. Первое что пришло мне на ум - переопределить метод create, Метод прописан в миксине CreateModelMixin и состоит в классе ModelViewSet:

    from rest_framework.response import Response
    
    class YourModelViewset(ModelViewset):
       #то, что мы рантше писали
       def create(self, request, *args, **kwargs):
            serializer =  YourModelSerializer(data = request.data)
            serializer.is_valid(raise_exception = True)
            serializer.save()
            return Response({"data":serializer.data})

    После этого вам вернутся только что сохраненные данные
    Ответ написан
    Комментировать
  • Почему не работает кнопка?

    @serhiops
    Python/JavaScript/C++
    1. Как помне, способ, которым вы решили это реализовать довольно странный. На практике чаще всего в похожих случаях использут DRF.
    2. Суда по url, который у вас формулируется, можно сказать, что неполадку стоит искать с ключом csrf. Попробуйте добавить такую js-функцию и немного изменить ваш ajax post запрос.
    Функция:
    const getCookie = name => {
        let cookieValue = null;
        if (document.cookie && document.cookie !== '') {
            let cookies = document.cookie.split(';');
            for (let i = 0; i < cookies.length; i++) {
                let cookie = cookies[i].trim();
                if (cookie.substring(0, name.length + 1) === (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }

    ajax post-запрос:
    $.ajax({
            url: URL,
            type: 'POST',
            data: {
               ваши данные
                csrfmiddlewaretoken: getCookie('csrftoken'),  //это мы берем csrf-токен
            },
           /* Остальные параметры */
            success: function (response) { },
            error: function (rs, e) {
                console.log(rs.responseText);
            }
        });
    Ответ написан
    Комментировать
  • Как решить ошибку (admin.E035) The value of 'readonly_fields[0]' is not a callable?

    @serhiops
    Python/JavaScript/C++
    Все очень просто: в admin.py вы обращаетесь к полю "get_photo":
    fields = ('title', 'category', 'content', 'photo', 'get_photo', 'is_published', 'views',
                  'create_at', 'updated_at')
        readonly_fields = ('get_photo', 'views', 'create_at', 'updated_at')

    Такого поля в модели News не существует, но есть photo, Полагаю, что если вы замените все "get_photo" на "photo", то ошибка исчезнет
    Ответ написан
    Комментировать
  • Как посчитать количество объектов и вывести его в HTML?

    @serhiops
    Python/JavaScript/C++
    count = Coment.objects.filter(user = some_user).count()

    Так же если вы берете коментарии через текущего пользователя, то можно использовать агрегатные вычесления:
    from django.db.models import Count
    coments = User.objects.get(pk = some_pk).get_coments.agregate(cnt = Count("coment"))
    count_coments = coments["cnt "]

    В данном урывке get_coments - значение атрибета related_name в вашей модели. Если вы его не указали явно, то он будет иметь следующий вид : <имя таблицы>_set
    Немного больше о related_name
    Ответ написан
    6 комментариев
  • Как вывести фотографию с формы Django?

    @serhiops
    Python/JavaScript/C++
    1) Тяжело сказать в чем проблема, пока вы полностью не покажите ваш контроллер-функцию.
    2) Предпочтительно использовать контроллеры-класы. В данном случае вам подойдет класс FormView из пакета django.views.generic.edit
    или
    django.views.generic
    3) Из того, что вы предоставили можно сказать лишь то, что в html вы неправильно указали src, правильный вариант :
    <img class="photo_img" src="{{ href_photo.url }}" alt="">
    Ответ написан