【发布时间】:2020-07-27 18:55:26
【问题描述】:
所以我有以下要求:我需要在 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
这是我尝试渲染以显示 Project description 的 HTML,但我什么也没看到
<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>
【问题讨论】:
标签: django python-3.x django-models django-views django-templates