Итак, у меня есть следующее требование: мне нужно отобразить значение из поля со списком в Django, в частности, Project Description
, но я просто не могу понять, как правильно отобразить его, как я вижу ничего. Вот моя конфигурация:
models.py
class Project(models.Model):
projectID = models.AutoField(primary_key=True, db_column="Id", db_index=True, verbose_name='Project ID')
description = models.CharField(max_length=900)
def __str__(self):
return str(f'{self.projectID}, {self.description}')
def get_description(self):
return str(self.description)
class PM(models.Model):
PMid = models.AutoField(primary_key=True, db_column="Id", db_index=True)
PMNumber = models.CharField(max_length=50, unique=True, db_column="PMNumber")
description = models.CharField(max_length=600)
projectId = models.ForeignKey(Project, on_delete=models.CASCADE,
db_column="ProjectID", related_name='+')
def __str__(self):
return str(f'{self.PMid}, {self.PMNumber}, {self.description}')
def get_project_description(self):
Project.objects.all().values_list('projectID', 'description')
Это формы:
forms.py
""" PM Forms """
#Django imports
from django import forms
#Project imports
from pm.models import PM
class PMForm(forms.ModelForm):
"""PMForm"""
class Meta:
model = PM
fields = ('PMNumber', 'description', 'projectId')
И это вид :
views.py
"""Pm Views """
#Django imports
from django.urls import reverse_lazy
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import CreateView
#Forms import
from pm.forms import PMForm
#Models import
class CreatePMView(LoginRequiredMixin, CreateView):
template_name = 'pm/new.html'
form_class = PMForm
success_url = reverse_lazy('project:feed')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['user'] = self.request.user
return context
def get_description(self):
return self.request.project.description
Вот HTML, который я пытаюсь сделать для отображения Project description
, но ничего не вижу
<div class="form-group col-md-4" >
<label for="project">Project</label>
<select id="project" class="form-control" name = "projectId" placeholder="Project related">
<option selected>Choose...</option>
<option>
{% for project in form.projectId %}
{{ project.projectId.description }}
{% endfor %}
</option>
</select>
</div>