Django: Difference between revisions

From annawiki
 
(8 intermediate revisions by the same user not shown)
Line 12: Line 12:


Example 3
Example 3
*if changing CharField to Unique the migration maybe does not convert the emty values to None?NULL and then one gets problems like: https://stackoverflow.com/questions/17257031/django-unique-null-and-blank-charfield-giving-already-exists-error-on-admin-p
*if changing CharField to Unique the migration maybe does not convert the empty values to None?NULL and then one gets problems like: https://stackoverflow.com/questions/17257031/django-unique-null-and-blank-charfield-giving-already-exists-error-on-admin-p


==Tutorial==
==Tutorial==
Line 24: Line 24:
The command creates:
The command creates:
  mysite/
  mysite/
    manage.py
    manage.py
    mysite/
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
"The outer mysite/ root directory is a container for your project" - really? What if one had that before (e.g. for data or the venv) and performed "django-admin startproject" within that?  
"The outer mysite/ root directory is a container for your project" - really? What if one had that before (e.g. for data or the venv) and performed "django-admin startproject" within that?  


Line 40: Line 45:
"Projects vs. apps" - "What’s the difference between a project and an app? An app is a web application that does something – e.g., a blog system, a database of public records or a small poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects."
"Projects vs. apps" - "What’s the difference between a project and an app? An app is a web application that does something – e.g., a blog system, a database of public records or a small poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects."


So, the outer mysite is "a collection of configuration and apps for a particular website" ... maybe the inner mysite is one of the "multiple apps"? Something like a main app?
So, the outer mysite is "a collection of configuration and apps for a particular website" ... maybe the inner mysite is one of the "multiple apps"? Something like a main app? Or can it be deleted?
 
"In this tutorial, we’ll create our poll app in the same directory as your manage.py file so that it can be imported as its own top-level module, rather than a submodule of mysite." - the inner mysite?
 
python manage.py startapp polls
The command creates
polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
 
"To call the view, we need to map it to a URL - and for this we need a URLconf." "To create a URLconf in the polls directory, create a file called urls.py." ... There is an urls.py in the inner mysite. Are there apps without views and without urls.py? If
* yes: why did startapp create views.py?
* no: why did startapp not create urls.py?
 
==History - reversion==
Uhrzeit auf Deutsch als:
#"3 nachm."
#"Mitternacht"
 
==May 1 3==
http://web.archive.org/web/20230501173916/https://docs.djangoproject.com/en/4.2/releases/4.2.1/

Latest revision as of 2023-05-01T20:00:36

Models

Migrations

Example 1

  • change model type e.g. Char to Integer : psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: ""
  • alter field name in model ...try to delete field ...errors...
  • to fix, try to rename, remove ... delete col by hand using psql, delete migrations, recreate migration ...
  • problems: stuck in errors psycopg2.errors.DuplicateColumn: column "ccc" of relation "rrr" already exists


Example 2

  • change of field to unique can result in "DETAIL: Key (id....)=() is duplicated."

Example 3

Tutorial

https://docs.djangoproject.com/en/4.0/intro/tutorial01/

"We’ll assume you have Django installed already. " - linking to https://docs.djangoproject.com/en/4.0/intro/install/ - venv isn't mentioned, but maybe it is better to do that and not pollute the OS.

django-admin startproject mysite

Shouln't it be myproject instead of mysite, if the command is "startproject"?

The command creates:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

"The outer mysite/ root directory is a container for your project" - really? What if one had that before (e.g. for data or the venv) and performed "django-admin startproject" within that?

"The inner mysite/ directory is the actual Python package for your project." - the other is the container, this one "the actual Python package for your project".


"June 01, 2022 - 15:50:53" - why this weird data format? How about ISO 8601?

Creating the Polls app
Now that your environment – a “project” – is set up, you’re set to start doing work.

Set up are: 1) a venv 2) "a container for your project" 3) "the actual Python package for your project".


"Projects vs. apps" - "What’s the difference between a project and an app? An app is a web application that does something – e.g., a blog system, a database of public records or a small poll app. A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects."

So, the outer mysite is "a collection of configuration and apps for a particular website" ... maybe the inner mysite is one of the "multiple apps"? Something like a main app? Or can it be deleted?

"In this tutorial, we’ll create our poll app in the same directory as your manage.py file so that it can be imported as its own top-level module, rather than a submodule of mysite." - the inner mysite?

python manage.py startapp polls

The command creates

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

"To call the view, we need to map it to a URL - and for this we need a URLconf." "To create a URLconf in the polls directory, create a file called urls.py." ... There is an urls.py in the inner mysite. Are there apps without views and without urls.py? If

  • yes: why did startapp create views.py?
  • no: why did startapp not create urls.py?

History - reversion

Uhrzeit auf Deutsch als:

  1. "3 nachm."
  2. "Mitternacht"

May 1 3

http://web.archive.org/web/20230501173916/https://docs.djangoproject.com/en/4.2/releases/4.2.1/