[PYTHON] Ecrire des contraintes de clé externe dans Django

Objectif

--Confirmation de la façon de décrire les contraintes de clé externe plusieurs-à-un dans Django

supposition

procédure

Description des contraintes clés externes

On suppose que l'état de l'objet de modèle de tâche est décrit par le modèle d'état. (Décrivez une relation plusieurs-à-un entre le modèle de tâche et le modèle de statut)

Description du fichier de modèle

Écrivez la classe de modèle d'état comme vous le feriez normalement.

models/status.py


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

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

Décrire les contraintes de clé externes du côté de la classe de tâches

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('Nom de la tâche', max_length=30, blank=False)
    startTime = models.DateTimeField('Heure de début', blank=True)
    endTime = models.DateTimeField('Heure de fin', blank=True, null=True)
    memo = models.CharField('Note', max_length=200, blank=True)
    # status = models.CharField('Statut', max_length=20, default='pas encore commencé', blank=False)
    status = models.ForeignKey(Status)
status = models.ForeignKey(Status)

Cette partie décrit la relation plusieurs-à-un entre le modèle de tâche et le modèle de statut. ** Ceci complète la description de la contrainte de clé externe **

Affichage sur le site de gestion

Trouvez une autre façon d'afficher n'importe quel champ sur le site d'administration. (Voulez-vous l'écrire bientôt?)

Etat initial

image

Même si l'objet Tâche est défini, l'élément d'état est "Objet d'état", ce qui est triste, corrigez ce problème.

Comment réparer (modèle de modification du statut)

models/status.py


from django.db import models

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

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

Dans cette partie, vous pouvez définir quelles informations sont affichées en tant qu'informations du site de gestion. (Il définit simplement ce qui est affiché lorsque l'objet est appelé comme une chaîne de caractères avec str ??)

modifié

En modifiant la classe de modèle Status Lorsque l'objet de modèle de tâche est affiché à partir du site de gestion L'affichage est comme prévu.

image

Recommended Posts

Ecrire des contraintes de clé externe dans Django
Tutoriel de clé externe de Django en 10 minutes
Clé étrangère dans SQLite de Python [Note]
Flask-Comment faire adhérer SQL Alchemy aux contraintes de clés externes
Modèle dans Django
Formulaire à Django
Séquence de touches en Python
Ecrire DCGAN avec Keras
Génération de clé de session Django 1.4.2
Séquence de touches en Python
Comment écrire une validation personnalisée dans Django REST Framework
Je ne voulais pas écrire la clé AWS dans le programme
Optimisation des performances dans Django 3.xx
PHP comme var_dump dans le template Django
Gérer les constantes dans les modèles Django
Implémenter la fonction de suivi dans Django
Ecrire l'entrée standard dans le code
Écrire une distribution bêta en Python
Renommer les colonnes de table dans Django3
Ecrire python dans Rstudio (réticulé)
Ecrire Spigot dans VS Code
Écrire des données au format HDF
Ecrire des contraintes de clé externe dans Django
Tutoriel de clé externe de Django en 10 minutes
Génération de clé de session Django 1.4.2
Clé étrangère dans SQLite de Python [Note]
(Note) Django dans l'environnement Vagrant
Ecrire des tests Spider dans Scrapy
Afficher Django ManyToManyField dans un modèle