【发布时间】:2019-03-14 11:46:12
【问题描述】:
我想招收学生,想从学生模型中获取学生信息,从课程模型中获取课程信息。 学生和课程是独立的应用程序。 我如何在注册视图中获取学生姓名列表和课程列表
这是代码
课程模型
class course(models.Model):
course_name = models.CharField(max_length=30)
course_fee = models.IntegerField(default=3000)
cr_hrs = models.IntegerField(default=2)
def __str__(self):
return self.course_name
学生模型
class student(models.Model):
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
father_name = models.CharField(max_length=30)
dob = models.DateField()
image = models.ImageField(upload_to='images/', null=True)
phone_number = models.BigIntegerField()
email = models.EmailField(unique=True, null=True)
def __str__(self):
return self.first_name
注册模特
from course.models import course
from student.models import student
class enroll(models.Model):
student = models.ForeignKey(student, on_delete=models.CASCADE)
course = models.ManyToManyField(course)
enroll_date = models.DateField()
enrolled_by = models.ForeignKey(User, on_delete=models.CASCADE)
fee_paid = models.BooleanField(default=False)
注册视图
def create(request):
enrolled = enroll.objects
if request.method == 'POST':
if request.POST['student'] and request.POST['course']:
enrolled = enroll()
enrolled.student = request.POST['student']
enrolled.course = request.POST['course']
enrolled.enrolled_by = request.user
enrolled.save()
return redirect('/enroll/list')
else:
return render(request, 'enroll/create.html', {'error': 'All fields are requried.'})
else:
return render(request, 'enroll/create.html', {'enrolled':enrolled})
html 文件
<form class="needs-validation" novalidate method="POST" action="{% url 'enroll_create' %}" enctype="multipart/form-data" name="student_form">
{% csrf_token %}
<select class="form-control" name="student">
{% for enroll in enrolled.all %}
<option value="{{enroll.student.first_name}}" >{{enroll.student.first_name}} {{enroll.student.last_name}}</option>
{% endfor%}
</select>
<select class="form-control" name="course" >
{% for enroll in enrolled.all %
<option value="{{enroll.course.course_name}}" >{{enroll.course.course_name}}</option>
{% endfor%}
</select>
<button class="btn btn-primary btn-lg btn-block" type="submit">Register</button>
</form>
我在名单中只有第一个名字,在课程中什么也没有
【问题讨论】:
-
哇,您的项目看起来很棒,但很抱歉我无法配置问题。希望您能尽快得到帮助。
-
@FarrukhSarmad 谢谢:)
标签: django django-models django-templates