在Django中填充下拉列表

时间:2020-03-13 07:11:05

标签: python django web-development-server

鉴于我有2个型号:

  1. 部门
  2. 课程

我的django项目目录的结构如下:

\timetable_generator
     \detailscourse
         \templates
             \detailscourse
                  \partials
                  add_course.html
         admin.py
         models.py
         views.py

     \detailsdepartment
         \templates
             \detailsdepartment
                  \partials
                  add_department.html
         admin.py
         forms.py
         models.py
         views.py

models.py-detailsdepartment 看起来像这样:

from django.db import models

# Create your models here.
class Department(models.Model):
   department_id = models.CharField(primary_key=True, max_length=20)
   department_name = models.CharField(max_length=100)

   def __str__(self):
      return self.department_name

forms.py-detailsdepartment 看起来像这样:

from django import forms
from .models import Department

class DepartmentForm(forms.ModelForm):
    class Meta():
        model = Department
        fields = '__all__'

views.py-detailsdepartment 看起来像这样:

from django.shortcuts import render, redirect
from django.contrib import messages
from .models import Department
from .forms import DepartmentForm

# Create your views here.
def adddepartment(request):
    form_class = DepartmentForm
    form = form_class(request.POST or None)

    if request.method == 'POST':
        if form.is_valid():
            cleaned_info = form.cleaned_data
            form.save(commit=True)
            messages.success(request, 'The department is added successfully.')
            return redirect('/detailsdepartment/adddepartment')
        else:
            messages.error(request, 'Department ID already exists.')
            return redirect('/detailsdepartment/adddepartment')
    else:
        return render(request,'detailsdepartment/add_department.html', {'form':form})

admin.py-detailsdepartment 如下:

from django.contrib import admin
from .models import Department

# Register your models here.
class DepartmentAdmin(admin.ModelAdmin):
    list_display = ['department_id', 'department_name']

admin.site.register(Department, DepartmentAdmin)

And the web page of the Department section looks like this

add_course.html-detailscourse 看起来像这样:

.
.    
.
<div class="row mb-5">
        <div class="col-lg-12">
          <form class="p-4 p-md-5 border rounded" method="post">
            <h3 class="text-black mb-5 border-bottom pb-2">Course Details</h3>

            <div class="form-group">
              <label for="select-semester">Department ID</label>
              <select class="selectpicker border rounded" id="select-department-d" data-style="btn-black" data-width="100%" title="Select Department ID">
                    <option>--------</option>
                    <option>--------</option>
                    <option>--------</option>
                    <option>--------</option>
              </select>
            </div>
            .
            .
            .
            .

问题

我想从下拉列表的 options 部分的 models.py-detailsdepartment 中添加部门ID

>

models.py-detailscourse 看起来像这样:

from django.db import models

# Create your models here.
class Course(models.Model):
    pass

要在此处编写哪些代码?

views.py-detailscourse 看起来像这样:

from django.shortcuts import render

# Create your views here.
def addcourse(request):
    return render(request,'detailscourse/add_course.html')

还要在此处编写代码做什么?

问题

我是否需要在detailscourse应用中创建 forms.py

问题

还需要在 add_course.html 中进行更改以在网页中反映出来。

在此先感谢您。

0 个答案:

没有答案