Ответы пользователя по тегу Django
  • Как исключить из выборки поле?

    На сколько я помню, то можно задать поля для сериализации:

    user_serialized = serializers.serialize('json', user, fields=('fname', 'lname' ...)
    Ответ написан
    Комментировать
  • Как обернуть div для не зарегистрированных пользователей?

    {% if user.is_authenticated %}
        <div>Для авторизованных</div>
    {% else %}
       <div>Для всех остальных</div>
    {% endif %}
    Ответ написан
    Комментировать
  • Как правильно настроить HTTPS для связки Nginx и Django?

    Скорее всего у тебя запросы попадают в цикличную переадресацию. Если бы выложил весь конфиг nginx, стало бы понятнее.

    У меня работает связка Django -> Gunicorn -> Nginx

    Nginx прослушивает 80 и 443 внешние порты. При обращении на 80, он переадресовывает на 443.
    Django через Gunicorn прослушивает кастомный порт, где принимает HTTP запросы. В настройках Djang'и специальных опций для SSL не добавлял.

    Мой nginx конфиг для django.
    server {
            listen 80;
            server_name <site_name>;
            return 301 https://<site_name>$request_uri;
    
    }
    
    server {
        server_name <site_name>;
        listen <site_name>:443 ssl;
    
        gzip on;
        gzip_disable "msie6";
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
    
        ssl_certificate /<path_to_ssl>/fullchain.pem;
        ssl_certificate_key /<path_to_ssl>/privkey.pem;
        ssl_trusted_certificate /<path_to_ssl>/chain.pem;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 127.0.0.1 8.8.8.8;
    
        add_header Strict-Transport-Security "max-age=31536000";
        add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests";
        expires max;
    
        location /static/ {
            alias /<project_path>/static/;
            expires 30d;
        }
    
        location /media/ {
            alias /<project_path>/media/;
            expires 30d;
        }
    
       location / {
                     client_max_body_size 0;
                     proxy_pass http://<local_ip>:<port>/;
                     proxy_set_header X-Real-IP $remote_addr;
                     proxy_set_header REMOTE_ADDR $remote_addr;
                     proxy_set_header Host $host;
                     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                     expires 1h;
            }
    
    }
    
    server {
        server_name www.<site_name>;
        listen www.<site_name>443 ssl;
        access_log off;
    
        ssl_certificate /<path_to_ssl>/fullchain.pem;
        ssl_certificate_key /<path_to_ssl>/privkey.pem;
        ssl_trusted_certificate /<path_to_ssl>/chain.pem;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 127.0.0.1 8.8.8.8;
    
        add_header Strict-Transport-Security "max-age=31536000";
        expires max;
        return 301 https://<site_name>$request_uri;
    
    }
    Ответ написан
    1 комментарий