Web Development

JavaScript

jQuery

Add jQuery Through the Console

var jq = document.createElement("script");
jq.src = "https://code.jquery.com/jquery-3.6.0.min.js";
document.getElementsByTagName("head")[0].appendChild(jq);

Give time for script to load, then enter

jQuery.noConflict();

Python

Helpful Command to Clean Cache Files if Anything Behaves Strangely

find . -name "*.pyc" -exec rm -rf {} \;

Kill Debugger

import os; os.system("kill -9 %d" % os.getpid())

Django

Management Commands

Data Migration Example

from django.db import migrations

def action(apps, schema_editor):
    [Model] = apps.get_model("[app]", "[Model]")

class Migration(migrations.Migration):
    dependencies = [
        ("[app]", "0001_initial"),
    ]

    operations = [
        migrations.RunPython(action),
    ]

Data Migration Example to Load Fixtures

from django.db import migrations
from django.core.management import call_command


def load_fixture(apps, schema_editor):
    # File name.json in fixtures dir
    call_command("loaddata", "[name]", app_label="[app]")


class Migration(migrations.Migration):

    dependencies = [
        ("[app]", "0001_initial"),
    ]

    operations = [
        migrations.RunPython(load_fixture)
    ]

How to Setup Internalization

Add to settings:

from django.utils.translation import ugettext_lazy as _
from os.path import dirname, join
SRC_DIR = dirname(dirname(abspath(__file__)))

LANGUAGES = (
    ("en", _("English")),
    ("ru", _("Russian")),
)

LOCALE_PATHS = (join(SRC_DIR, "locale"),)

TEMPLATES = [
    {
        "OPTIONS": {
            "builtins": ["django.templatetags.i18n"],
        },
    },
]

Add to templates:

{% trans 'text' %}
{% blocktrans %}Back to '{{ race }}' homepage{% endblocktrans %}

To create/update necessary .po files:

python manage.py makemessages -a

Install django-rosetta

You can then access your translations here — /rosetta

JavaScript

To create/update necessary .po files:

python manage.py makemessages -a -d djangojs

Add to urls.py

from django.views.i18n import JavaScriptCatalog

    url(r"^jsi18n/$",
        JavaScriptCatalog.as_view(packages=("moviesapp", ), domain="djangojs"),
        name="javascript-catalog"),

urlpatterns += [
    url(r"^jsi18n/$",
        JavaScriptCatalog.as_view(packages=("[app]", ), domain="djangojs"),
        name="javascript-catalog"),
]

Add to templates before any js code:

<script src="{% url 'javascript-catalog' %}"></script>

If you also need access to the language in js add:

{% get_current_language as LANGUAGE_CODE %}
<script>
  var language = "{{ LANGUAGE_CODE }}";
</script>

To use:

gettext("this is to be translated");

Additional info in django docs

Py.test

pytest.ini
[pytest]
DJANGO_SETTINGS_MODULE = app.settings
python_files = test_*
addopts = --nomigrations --reuse-db
Installation
pip install pytest-django
Usage

Documentation

Services for Your Projects