Domanda

Appena inizia il mio Python/Django esperienza e ho un problema :-)

Quindi ho un model.py come questa:

from django.db import models

class Priority(models.Model):
    name = models.CharField(max_length=100)

class Projects(models.Model):
    name = models.CharField(max_length=30)
    description = models.CharField(max_length=150)
    priority = models.ForeignKey(Priority)

class Tasks(models.Model):
    name = models.CharField(max_length=30)
    description = models.CharField(max_length=40)
    priority = models.ForeignKey(Priority)

Nella tabella priorità ho intenzione di memorizzare i dati come 1.Alta, 2.Medio , 3.Basso e nella tabella delle Attività priorità verrà archiviato come id (1, 2 o 3)

E la domanda è: come scrivere una vista che visualizza tutte le mie attività, ma con Priorità di nome?Per esempio:

name: Task 1

description: Description 1

priority: **High**
È stato utile?

Soluzione

La vista non deve fare molto.

tasks = Tasks.objects.all()

Fornire questo al vostro modello.

Il modello può quindi fare qualcosa di simile alla seguente.

{% for t in tasks %}
    name: {{t.name}}
    description: {{t.description}}
    priority: **{{t.priority.name}}**
{% endfor %}

Altri suggerimenti

Ci sono molti modi di realizzare ciò di cui avete bisogno.Uno dei modo più semplice sarebbe quello di mantenere un dizionario di numero a stringa.Come questa:1->Alta, 2->Medio, 3->Alto.

Mantenere questo dizionario al di fuori delle funzioni, in modo che si può accedere da qualsiasi delle funzioni che devono avere la priorità.

Si potrebbe anche scrivere semplicemente un interruttore che determina cosa visualizzare nel modello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top