Scríobh do chéad aip Django, cuid 2Link to this heading

Tosaíonn an rang teagaisc seo nuair a d'fhág :d oc:Tutorial 1 </intro/tutorial01>. Cuirfimid an bunachar sonraí ar bun, cruthóimid do chéad mhúnla, agus cuirfimid réamhrá tapa ar shuíomh riaracháin Django a ghintear go huathoibríoch.

Socrú bunachar sonraíLink to this heading

Anois, oscail suas mysite/settings.py. Is gnáth-mhodúl Python é le hathróga ar leibhéal an mhodúil a léiríonn suíomhanna Django.

De réir réamhshocraithe, úsáideann an chumraíocht DATABASES SQLite. Más rud é go bhfuil bunachair shonraí nua agat, nó mura bhfuil suim agat ach Django a thriail, is é seo an rogha is éasca. Tá SQLite san áireamh i Python, mar sin ní bheidh ort aon rud eile a shuiteáil chun tacú le do bhunachar sonraí. Agus do chéad tionscadal fíor á thosú, áfach, b'fhéidir gur mhaith leat úsáid a bhaint as bunachar sonraí níos inscálaithe cosúil le PostgreSQL, chun tinneas cinn a bhaineann le hathrú bunachar sonraí a sheachaint.

Más mian leat bunachar sonraí eile a úsáid, féach mionsonraí chun do bhunachar sonraí a shaincheapadh agus a chur ar siúl.

Agus tú ag eagarthóireacht :comhad: mysite/settings.py, socraigh TIME_ZONE chuig do chrios ama.

Chomh maith leis sin, tabhair faoi deara an socrú INSTALLED_APPS ag barr an chomhaid. Coinníonn sé sin ainmneacha na bhfeidhmchlár Django go léir atá i ngníomh sa chás Django seo. Is féidir feidhmchláir a úsáid i dtionscadail iolracha, agus is féidir leat iad a phacáistiú agus a dháileadh lena n-úsáid ag daoine eile ina dtionscadail.

De réir réamhshocraithe, : socrú: tá na haipeanna seo a leanas i INSTALLED_APPS, agus tagann gach ceann díobh le Django:

  • django.contrib.admin -- An suíomh riaracháin. Bainfidh tú úsáid as gan mhoill.

  • django.contrib.auth -- Córas fíordheimhnithe.

  • django.contrib.contenttypes -- Creat le haghaidh cineálacha ábhair.

  • :mod:'django.contrib.sessions' -- Creat seisiúin.

  • :mod:'django.contrib.messages' -- Creat teachtaireachtaí.

  • :mod:'django.contrib.staticfiles' -- Creat chun comhaid statacha a bhainistiú.

These applications are included by default as a convenience for the common case.

Baineann cuid de na feidhmchláir seo úsáid as tábla bunachar sonraí amháin ar a laghad, áfach, mar sin ní mór dúinn na táblaí a chruthú sa bhunachar sonraí sular féidir linn iad a úsáid. Chun é sin a dhéanamh, rith an t-ordú seo a leanas:

Linux / macOS

Shell
$ python manage.py migrate

Windows

Windows
...\> py manage.py migrate

The migrate command looks at the INSTALLED_APPS setting and creates any necessary database tables according to the database settings in your mysite/settings.py file and the database migrations shipped with the app (we'll cover those later). You'll see a message for each migration it applies. If you're interested, run the command-line client for your database and type \dt (PostgreSQL), SHOW TABLES; (MariaDB, MySQL), .tables (SQLite), or SELECT TABLE_NAME FROM USER_TABLES; (Oracle) to display the tables Django created.

Samhlacha a chruthúLink to this heading

Anois déanfaimid do mhúnlaí a shainiú - go bunúsach, do leagan amach bunachar sonraí, le meiteashonraí breise.

In ár app vótaíochta, cruthóimid dhá mhúnla: `` Ceist`` agus `` Rogha``. Tá ceist agus dáta foilsithe ag Ceist. Tá dhá réimse ag Choice: téacs na rogha agus scóir vóta. Baineann gach Rogha le Ceist.

Déanann ranganna Python ionadaíocht ar na coincheapa seo. Cuir an comhad :comhad:`polls/models.py` in eagar ionas go mbeidh cuma air seo:

polls/models.py
Python
from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField("date published")


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

Anseo, déantar ionadaíocht ar gach samhail ag aicme a fho-aicmí :aicme: django.db.models.Model. Tá roinnt athróg ranga ag gach samhail, agus léiríonn gach ceann acu réimse bunachar sonraí sa tsamhail.

Léirítear gach réimse ag sampla de :aicme:`~django.db.models.Réimse` rang -- m.sh., :aicme:`~django.db.models.CharField` le haghaidh réimsí carachtar agus :aicme:`~ django .db.models.DateTimeField` le haghaidh amanna dáta. Insíonn sé seo do Django cén cineál sonraí atá i seilbh gach réimse.

Is é ainm gach :aicme:`~django.db.models.Field` shampla (m.sh. question_text nó `` pub_date``) ainm an réimse, i bhformáid meaisín-chairdiúil. Úsáidfidh tú an luach seo i do chód Python, agus úsáidfidh do bhunachar sonraí é mar ainm an cholúin.

Is féidir leat an chéad argóint suímh roghnach a úsáid chuig:rang:~django.db.models.Field chun ainm atá inléite ag an duine a ainmniú. Úsáidtear é sin i gcúpla cuid introspective de Django, agus déantar é a dhúbailt mar dhoiciméadú. Mura soláthraítear an réimse seo, úsáidfidh Django an t-ainm meaisín-inléite. Sa sampla seo, níl ach ainm inléite daonna sainmhínithe againn do Question.pub_date. I gcás gach réimse eile sa mhúnla seo, is leor ainm meaisín-inléite na páirce mar a ainm inléite ag an duine.

Bhí argóintí ag teastáil ó roinnt ranganna :rang:`~django.db.models.Field`. :rang:`~django.db.models.CharField`, mar shampla, éilíonn tú max_length a thabhairt dó. Úsáidtear é sin ní hamháin sa scéimre bunachar sonraí, ach i mbailíochtú, mar a fheicfimid go luath.

A Field can also have various optional arguments; in this case, we've set the default value of votes to 0.

Ar deireadh, tabhair faoi deara go bhfuil gaol sainithe, ag baint úsáide as ForeignKey. Deir sé sin le Django go bhfuil gach Rogha gaolmhar le Ceist amháin. Tacaíonn Django leis na caidrimh bhunachar sonraí coitianta go léir: go leor le duine, go leor le go leor, agus duine le duine.

Samhlacha a ghníomhachtúLink to this heading

Tugann an cód múnla beag sin go leor faisnéise do Django. Leis, tá Django in ann:

  • Cruthaigh scéimre bunachar sonraí (ráitis CREATE TABLE) don aip seo.

  • Cruthaigh API le rochtain ar bhunachar sonraí Python chun réada Ceist agus Choice a rochtain.

Ach ar dtús ní mór dúinn a rá lenár dtionscadal go bhfuil an aip vótaíochta suiteáilte.

Chun an aip a chur san áireamh inár dtionscadal, ní mór dúinn tagairt a dhéanamh dá rang cumraíochta sa socrú INSTALLED_APPS. Tá an rang PollsConfig sa chomhad :comhad:`vótaíocht/apps.py`, mar sin is é an cosán poncaithe atá aige ná ` pobalbhreith.apps.PollsConfig. Cuir an comhad :comhad:`mysite/settings.py` in eagar agus cuir an cosán poncaithe sin leis an socrú ::INSTALLED_APPS. Beidh sé cuma mar seo:

mysite/settings.py
Python
INSTALLED_APPS = [
    "polls.apps.PollsConfig",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
]

Anois tá a fhios ag Django an aip toghcháin` a chur san áireamh. Rithfimid ordú eile:

Linux / macOS

Shell
$ python manage.py makemigrations polls

Windows

Windows
...\> py manage.py makemigrations polls

Ba cheart duit rud éigin cosúil leis an méid seo a leanas a fheiceáil:

Text
Migrations for 'polls':
  polls/migrations/0001_initial.py
    + Create model Question
    + Create model Choice

Trí makemigrations a rith, tá tú ag insint do Django go bhfuil roinnt athruithe déanta agat ar do mhúnlaí (sa chás seo, tá cinn nua déanta agat) agus gur mhaith leat na hathruithe a stóráil mar * imirce *.

Is éard atá i gceist le himircí ná mar a stórálann Django athruithe ar do mhúnlaí (agus dá bhrí sin do scéimre bunachar sonraí) - is comhaid ar diosca iad. Is féidir leat an t-aistriú do do mhúnla nua a léamh más maith leat; is é an comhad polls/migrations/0001_initial.py. Ná bíodh imní ort, ní bheifear ag súil go léifidh tú iad gach uair a dhéanann Django ceann, ach tá siad deartha le gur féidir iad a chur in eagar ag an duine ar eagla go dteastaíonn uait an chaoi a n-athraíonn Django rudaí a athrú de láimh.

Tá ordú ann a reáchtálfaidh na himscrúduithe duit agus a bhainisteoidh scéimre do bhunachar sonraí go huathoibríoch - ar a dtugtar : djadmin: imirce, agus tiocfaimid chuige faoi láthair - ach ar dtús, feicfimid cad a rithfeadh SQL leis an imirce sin. Tógann an t-ordú : djadmin:sqlmigrate ainmneacha imirce agus cuireann sé a SQL ar ais:

Linux / macOS

Shell
$ python manage.py sqlmigrate polls 0001

Windows

Windows
...\> py manage.py sqlmigrate polls 0001

Ba cheart duit rud éigin cosúil leis an méid seo a leanas a fheiceáil (rinneamar é a athfhormáidiú le haghaidh inléiteachta):

SQL
BEGIN;
--
-- Create model Question
--
CREATE TABLE "polls_question" (
    "id" bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    "question_text" varchar(200) NOT NULL,
    "pub_date" timestamp with time zone NOT NULL
);
--
-- Create model Choice
--
CREATE TABLE "polls_choice" (
    "id" bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    "choice_text" varchar(200) NOT NULL,
    "votes" integer NOT NULL,
    "question_id" bigint NOT NULL
);
ALTER TABLE "polls_choice"
  ADD CONSTRAINT "polls_choice_question_id_c5b4b260_fk_polls_question_id"
    FOREIGN KEY ("question_id")
    REFERENCES "polls_question" ("id")
    DEFERRABLE INITIALLY DEFERRED;
CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");

COMMIT;

Tabhair faoi deara iad seo a leanas:

  • Athróidh an t-aschur cruinn ag brath ar an mbunachar sonraí atá in úsáid agat. Gintear an sampla thuas do PostgreSQL.

  • Gintear ainmneacha táblaí go huathoibríoch trí ainm na haipe (`` pobalbhreith``) agus ainm litreacha beaga na samhla a chomhcheangal -- `` ceist`` agus `` rogha``. (Is féidir leat an iompar seo a shárú.)

  • Cuirtear eochracha príomhúla (IDs) leis go huathoibríoch. (Is féidir leat é seo a shárú freisin.)

  • De réir an ghnáis, cuireann Django `` "_id"`` i gceangal leis an ainm réimse eochrach eochrach. (Sea, is féidir leat é seo a shárú, chomh maith.)

  • Léirítear an gaol eochrach eachtrach le srian eochair Choigríche. Ná bíodh imní ort faoi na codanna DEFERRABLE; tá sé ag rá le PostgreSQL gan an eochair choigríche a fhorghníomhú go dtí deireadh an idirbhirt.

  • Tá sé in oiriúint don bhunachar sonraí atá in úsáid agat, mar sin cineálacha réimse a bhaineann go sonrach leis an mbunachar sonraí ar nós `` auto_increment`` (MySQL), bigint PRIMARY EOCHAIR A GHINEÁLaítear GAN RÉAMHSHLÁN MAR FHÉINIÚLACHT (PostgreSQL), nó `` uath-incrimint phríomhúil Láimhseáiltear `` (SQLite) duit go huathoibríoch. Baineann an rud céanna le hainmneacha páirce a lua -- m.sh., ag baint úsáide as Sleachta dúbailte nó Sleachta singil.

  • Ní ritheann an t-ordú sqlmigrate an t-imirce ar do bhunachar sonraí - ina ionad sin, priontaí sé chuig an scáileán ionas gur féidir leat a fheiceáil cad a cheapann SQL Django atá ag teastáil. Tá sé úsáideach chun a sheiceáil cad atá le déanamh ag Django nó má tá riarthóirí bunachar sonraí agat a dteastaíonn scripteanna SQL le haghaidh athruithe.

Má tá suim agat, is féidir leat seiceáil python manage.py a rith freisin; seiceálann sé seo aon fhadhbanna i do thionscadal gan ascnaimh a dhéanamh nó teagmháil a dhéanamh leis an mbunachar sonraí.

Anois, rith migrate arís chun na táblaí samhail sin a chruthú i do bhunachar sonraí:

Linux / macOS

Shell
$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying polls.0001_initial... OK

Windows

Windows
...\> py manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Applying polls.0001_initial... OK

Tógann an t-ordú migrate gach ascnamh nár cuireadh i bhfeidhm (rianann Django cé na cinn a chuirtear i bhfeidhm le tábla speisialta i do bhunachar sonraí darb ainm django_migrations) agus ritheann sé i gcoinne do bhunachar sonraí - go bunúsach, sioncrónú an athruithe a rinne tú ar do mhúnlaí leis an scéimre sa bhunachar sonraí.

Tá imircigh an-chumhachtach agus ligeann siad duit do mhúnlaí a athrú le himeacht ama, de réir mar a fhorbraíonn tú do thionscadal, gan gá do bhunachar sonraí nó do tháblaí a scriosadh agus cinn nua a dhéanamh - speisialtóireacht sé do bhunachar sonraí a uasghrádú beo, gan sonraí a chailliúint. Déanfaimid iad a chlúdach níos doimhne i gcuid níos déanaí den rang teagaisc, ach faoi láthair, cuimhnigh ar an treoir trí chéim chun athruithe múnla a dhéanamh:

Is é an fáth go bhfuil orduithe ar leith ann chun ascnaimh a dhéanamh agus a chur i bhfeidhm ná go ndéanfaidh tú ascnaimh chuig do chóras rialaithe leagan agus seolfaidh tú le d'aip iad; ní hamháin go ndéanann siad d'fhorbairt níos éasca, is féidir le forbróirí eile iad a úsáid agus i dtáirgeadh.

Léigh an doiciméadúchán django-admin chun faisnéis iomlán a fháil faoin méid is féidir leis an bhfóntas manage.py a dhéanamh.

Ag imirt leis an APILink to this heading

Anois, léim isteach sa bhlaosc Python idirghníomhach agus imirt timpeall leis an API saor in aisce a thugann Django duit. Chun an bhlaosc Python a agairt, bain úsáid as an ordú seo:

Linux / macOS

Shell
$ python manage.py shell

Windows

Windows
...\> py manage.py shell

We're using this instead of simply typing "python", because manage.py sets the DJANGO_SETTINGS_MODULE environment variable, which gives Django the Python import path to your mysite/settings.py file. By default, the shell command automatically imports the models from your INSTALLED_APPS.

Nuair a bheidh tú sa bhlaosc, scrúdaigh an database API:

Python console
# No questions are in the system yet.
>>> Question.objects.all()
<QuerySet []>

# Create a new Question.
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())

# Save the object into the database. You have to call save() explicitly.
>>> q.save()

# Now it has an ID.
>>> q.id
1

# Access model field values via Python attributes.
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=datetime.UTC)

# Change values by changing the attributes, then calling save().
>>> q.question_text = "What's up?"
>>> q.save()

# objects.all() displays all the questions in the database.
>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>

Fan nóiméad. <Ceist: Ceist oibiachta (1)> léiriú cabhrach é `` ar an oibiacht seo. Déanaimis é sin a shocrú tríd an múnla ``Ceist a chur in eagar (sa chomhad vótaíocht/models.py) agus modh __str__() a chur leis an dá Ceist `` agus ``Rogha:

polls/models.py
Python
from django.db import models


class Question(models.Model):
    # ...
    def __str__(self):
        return self.question_text


class Choice(models.Model):
    # ...
    def __str__(self):
        return self.choice_text

Tá sé tábhachtach modhanna __str__() a chur le do mhúnlaí, ní hamháin ar mhaithe le do chaoithiúlacht féin agus tú ag déileáil leis an leid idirghníomhach, ach freisin toisc go n-úsáidtear léiriúcháin oibiachtaí ar fud Django a ghintear go huathoibríoch riar.

Cuirfimid modh saincheaptha leis an múnla seo freisin:

polls/models.py
Python
import datetime

from django.db import models
from django.utils import timezone


class Question(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

Tabhair faoi deara gur cuireadh `` am allmhairiú dáta`` agus `` ó chrios ama iompórtála django.utils`` leis, chun tagairt a dhéanamh do mhodúl caighdeánach Python :mod:` datetime` agus fóntais a bhaineann le crios ama Django i :mod:` django.utils. crios ama`, faoi seach. Mura bhfuil tú eolach ar láimhseáil crios ama i Python, is féidir leat níos mó a fhoghlaim sa doiciméid tacaíochta crios ama.

Save these changes and start a new Python interactive shell. (If a three-chevron prompt (>>>) indicates you are still in the shell, you need to exit first using exit()). Run python manage.py shell again to reload the models.

Python console
# Make sure our __str__() addition worked.
>>> Question.objects.all()
<QuerySet [<Question: What's up?>]>

# Django provides a rich database lookup API that's entirely driven by
# keyword arguments.
>>> Question.objects.filter(id=1)
<QuerySet [<Question: What's up?>]>
>>> Question.objects.filter(question_text__startswith="What")
<QuerySet [<Question: What's up?>]>

# Get the question that was published this year.
>>> from django.utils import timezone
>>> current_year = timezone.now().year
>>> Question.objects.get(pub_date__year=current_year)
<Question: What's up?>

# Request an ID that doesn't exist, this will raise an exception.
>>> Question.objects.get(id=2)
Traceback (most recent call last):
    ...
DoesNotExist: Question matching query does not exist.

# Lookup by a primary key is the most common case, so Django provides a
# shortcut for primary-key exact lookups.
# The following is identical to Question.objects.get(id=1).
>>> Question.objects.get(pk=1)
<Question: What's up?>

# Make sure our custom method worked.
>>> q = Question.objects.get(pk=1)
>>> q.was_published_recently()
True

# Give the Question a couple of Choices. The create call constructs a new
# Choice object, does the INSERT statement, adds the choice to the set
# of available choices and returns the new Choice object. Django creates
# a set (defined as "choice_set") to hold the "other side" of a ForeignKey
# relation (e.g. a question's choice) which can be accessed via the API.
>>> q = Question.objects.get(pk=1)

# Display any choices from the related object set -- none so far.
>>> q.choice_set.all()
<QuerySet []>

# Create three choices.
>>> q.choice_set.create(choice_text="Not much", votes=0)
<Choice: Not much>
>>> q.choice_set.create(choice_text="The sky", votes=0)
<Choice: The sky>
>>> c = q.choice_set.create(choice_text="Just hacking again", votes=0)

# Choice objects have API access to their related Question objects.
>>> c.question
<Question: What's up?>

# And vice versa: Question objects get access to Choice objects.
>>> q.choice_set.all()
<QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]>
>>> q.choice_set.count()
3

# The API automatically follows relationships as far as you need.
# Use double underscores to separate relationships.
# This works as many levels deep as you want; there's no limit.
# Find all Choices for any question whose pub_date is in this year
# (reusing the 'current_year' variable we created above).
>>> Choice.objects.filter(question__pub_date__year=current_year)
<QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]>

# Let's delete one of the choices. Use delete() for that.
>>> c = q.choice_set.filter(choice_text__startswith="Just hacking")
>>> c.delete()

Chun tuilleadh eolais a fháil ar chaidreamh samhlacha, féach Rochtain ar réada gaolmhara. Chun tuilleadh eolais a fháil ar conas béim dhúbailte a úsáid chun cuardaigh allamuigh a dhéanamh tríd an API, féach Field lookups. Le haghaidh sonraí iomlána ar API an bhunachair shonraí, féach ar ár Tagairt API Bunachar Sonraí.

Riarachán Django a thabhairt isteachLink to this heading

Úsáideoir admin a chruthúLink to this heading

Ar dtús beidh orainn úsáideoir a chruthú a bheidh in ann logáil isteach ar an suíomh riaracháin. Rith an t-ordú seo a leanas:

Linux / macOS

Shell
$ python manage.py createsuperuser

Windows

Windows
...\> py manage.py createsuperuser

Cuir isteach an t-ainm úsáideora atá uait agus brúigh Enter.

Text
Username: admin

Tabharfar leid duit ansin do sheoladh ríomhphoist atá uait:

Text
Email address: admin@example.com

Is é an chéim dheireanach ná do phasfhocal a chur isteach. Iarrfar ort do phasfhocal a chur isteach faoi dhó, an dara huair mar dheimhniú ar an gcéad cheann.

Text
Password: **********
Password (again): *********
Superuser created successfully.

Tosaigh an freastalaí forbarthaLink to this heading

Tá suíomh riaracháin Django gníomhachtaithe de réir réamhshocraithe. A ligean ar tús a chur leis an bhfreastalaí forbartha agus é a iniúchadh.

Mura bhfuil an freastalaí ag rith cuir tús leis mar seo:

Linux / macOS

Shell
$ python manage.py runserver

Windows

Windows
...\> py manage.py runserver

Anois, oscail brabhsálaí gréasáin agus téigh go dtí "/admin/" ar d'fhearann ​​​​áitiúil -- m.sh., http://127.0.0.1:8000/admin/. Ba cheart duit scáileán logáil isteach an riarthóir a fheiceáil:

Django scáileán logáil isteach admin

Ós rud é go gcuirtear translation ar siúl de réir réamhshocraithe, má shocraíonn tú :LANGUAGE_CODE, taispeánfar an scáileán logála isteach sa teanga a thugtar (má tá aistriúcháin chuí ag Django).

Cuir isteach an suíomh adminLink to this heading

Anois, bain triail as logáil isteach leis an gcuntas sár-úsáideoir a chruthaigh tú sa chéim roimhe seo. Ba cheart duit an leathanach innéacs riaracháin Django a fheiceáil:

Leathanach innéacs admin Django

Ba cheart go bhfeicfeá roinnt cineálacha ábhar in eagar: grúpaí agus úsáideoirí. Soláthraítear iad ag django.contrib.auth, an creat fíordheimhnithe seolta ag Django.

Déan an aip vótaíochta inathraithe sa riarthóirLink to this heading

Ach cá bhfuil ár n-aip vótaíochta? Níl sé ar taispeáint ar an leathanach innéacs admin.

Níl ach rud amháin eile le déanamh: ní mór dúinn a rá leis an riarthóir go bhfuil comhéadan riaracháin ag réada Ceist. Chun seo a dhéanamh, oscail an comhad ::polls/admin.py, agus cuir in eagar é chun breathnú mar seo:

polls/admin.py
Python
from django.contrib import admin

from .models import Question

admin.site.register(Question)

Déan iniúchadh ar fheidhmiúlacht admin saor in aisceLink to this heading

Anois agus Ceist cláraithe againn, tá a fhios ag Django gur cheart é a thaispeáint ar an leathanach innéacs riaracháin:

Leathanach innéacs admin Django, anois le pobalbhreith ar taispeáint

Cliceáil "Ceisteanna". Anois tá tú ag an leathanach "liosta athraithe" le haghaidh ceisteanna. Taispeánann an leathanach seo na ceisteanna go léir sa bhunachar sonraí agus ligeann sé duit ceann a roghnú chun é a athrú. Tá an "Cad atá ar bun?" ceist a chruthaigh muid níos luaithe:

Athraítear leathanach liosta na vótaíochtaí

Cliceáil ar an gcnaipe "Cad atá ar bun?" ceist chun é a chur in eagar:

Foirm eagarthóireachta don ábhar ceiste

Rudaí le tabhairt faoi deara anseo:

  • Gintear an fhoirm go huathoibríoch ón múnla Ceist.

  • Freagraíonn na cineálacha éagsúla réimse samhlacha (:rang:`~django.db.models.DateTimeField`, :rang:`~django.db.models.CharField`) don ghiuirléid ionchur HTML cuí. Tá a fhios ag gach cineál réimse conas é féin a thaispeáint sa riarthóir Django.

  • Faigheann gach :rang:`~django.db.models.DateTimeField` aicearraí JavaScript saor in aisce. Faigheann dátaí aicearra "Inniu" agus aníos aníos féilire, agus faigheann uaireanta aicearra "Anois" agus mír aníos áisiúil a liostaíonn na hamanna a chuirtear isteach go coitianta.

Tugann an chuid íochtair den leathanach cúpla rogha duit:

  • Sábháil -- Sábháil athruithe agus filleann sé ar an leathanach liosta athruithe don chineál seo oibiachta.

  • Sábháil agus lean ar aghaidh leis an eagarthóireacht -- Sábháil na hathruithe agus athlódálann sé an leathanach riaracháin don réad seo.

  • Sábháil agus cuir ceann eile leis -- Sábháil athruithe agus lódálann sé foirm bhán nua don chineál seo réad.

  • Scrios -- Taispeánann sé leathanach deimhnithe scriosta.

Mura dtagann luach "Dáta foilsithe" leis an am ar chruthaigh tú an cheist i Teagasc 1, is dócha go gciallaíonn sé go ndearna tú dearmad ar an luach ceart a shocrú don :setting:` socrú TIME_ZONE`. Athraigh é, athlódáil an leathanach agus seiceáil go bhfuil an luach ceart le feiceáil.

Athraigh an "Dáta foilsithe" trí chliceáil ar na aicearraí "Inniu" agus "Anois". Ansin cliceáil "Sábháil agus leanúint ar aghaidh leis an eagarthóireacht." Ansin cliceáil "Stair" ar dheis uachtarach. Feicfidh tú leathanach ina liostaítear na hathruithe go léir a rinneadh ar an réad seo tríd an riarthóir Django, le stampa ama agus ainm úsáideora an duine a rinne an t-athrú:

Leathanach staire don ábhar ceiste

Nuair atá tú ar do chompord le API na múnlaí agus nuair a bheidh an suíomh riaracháin curtha ar an eolas agat, léigh cuid 3 den rang teagaisc seo chun tuilleadh eolais a fháil faoi conas tuilleadh tuairimí a chur lenár bhfeidhmchlár pobalbhreithe.