[PYTHON] Schreiben Sie externe Schlüsseleinschränkungen in Django

Zweck

Annahme

Verfahren

Beschreibung der Einschränkungen für externe Schlüssel

Es wird davon ausgegangen, dass der Status des Taskmodellobjekts vom Statusmodell beschrieben wird. (Beschreiben Sie eine Eins-zu-Eins-Beziehung zwischen dem Aufgabenmodell und dem Statusmodell.)

Beschreibung der Modelldatei

Schreiben Sie die Statusmodellklasse wie gewohnt.

models/status.py


"""
Model for status
"""
from django.db import models

class Status(models.Model):
    """
    Status for Task
    """
    name = models.CharField('Status', max_length=30, blank=False)

Beschreiben der externen Schlüsselbeschränkungen auf der Seite der Taskklasse

models/task.py


from django.db import models
from datetime import datetime
from webui.models.status import Status

class Task(models.Model):
    """
    Task to do.
    """
    name = models.CharField('Aufgabennname', max_length=30, blank=False)
    startTime = models.DateTimeField('Startzeit', blank=True)
    endTime = models.DateTimeField('Endzeit', blank=True, null=True)
    memo = models.CharField('Memo', max_length=200, blank=True)
    # status = models.CharField('Status', max_length=20, default='noch nicht angefangen', blank=False)
    status = models.ForeignKey(Status)
status = models.ForeignKey(Status)

Dieser Teil beschreibt die Viele-zu-Eins-Beziehung zwischen dem Aufgabenmodell und dem Statusmodell. ** Damit ist die Beschreibung der externen Schlüsselbeschränkung abgeschlossen **

Anzeige auf der Verwaltungssite

Suchen Sie nach einer anderen Möglichkeit, ein beliebiges Feld auf der Admin-Site anzuzeigen. (Wirst du es bald schreiben?)

Ausgangszustand

image

Selbst wenn das Task-Objekt festgelegt ist, lautet das Statuselement "Statusobjekt", was traurig ist. Beheben Sie dies.

So beheben Sie (Statusmodell ändern)

models/status.py


from django.db import models

class Status(models.Model):
    """
    Status for Task
    """
    name = models.CharField('Status', max_length=30, blank=False)

    def __str__(self):
        return self.name
def __str__(self):
    return self.name

In diesem Teil können Sie definieren, welche Informationen als Informationen der Verwaltungssite angezeigt werden. (Es definiert nur, was angezeigt wird, wenn das Objekt als Zeichenfolge mit str ?? aufgerufen wird.)

Überarbeitet

Durch Ändern der Statusmodellklasse Wenn das Taskmodellobjekt auf der Verwaltungssite angezeigt wird Die Anzeige ist wie erwartet.

image

Recommended Posts

Schreiben Sie externe Schlüsseleinschränkungen in Django
Djangos External Key Tutorial in 10 Minuten
Fremdschlüssel in SQLite von Python [Hinweis]
Flask-How, mit dem SQL Alchemy externe Schlüsselbeschränkungen einhält
Modell in Django
Form in Django
Tastenanschlag in Python
Schreiben Sie DCGAN mit Keras
Django 1.4.2 Generierung von Sitzungsschlüsseln
Tastenanschlag in Python
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
Ich wollte den AWS-Schlüssel nicht in das Programm schreiben
Leistungsoptimierung in Django 3.xx.
PHP var_dump-like in Django-Vorlage
Behandeln Sie Konstanten in Django-Vorlagen
Implementieren Sie die Follow-Funktion in Django
Schreiben Sie die Standardeingabe in den Code
Schreiben Sie die Beta-Distribution in Python
Benennen Sie Tabellenspalten in Django3 um
Schreiben Sie Python in Rstudio (reticulate)
Schreiben Sie Spigot in VS Code
Schreiben Sie Daten im HDF-Format
Schreiben Sie externe Schlüsseleinschränkungen in Django
Djangos External Key Tutorial in 10 Minuten
Django 1.4.2 Generierung von Sitzungsschlüsseln
Fremdschlüssel in SQLite von Python [Hinweis]
(Hinweis) Django in Vagrant-Umgebung
Schreiben Sie Spinnen-Tests in Scrapy
Zeigen Sie Django ManyToManyField in der Vorlage