как сделать зависимую выпадающую форму в Django - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть три модели, и каждые три модели зависят друг от друга. При добавлении модели Studentfee через форму, когда я выбираю имя студента, цена курса должна отображаться только в зависимости от выбора курса этого студента

models.py

from django.db import models
from django.db.models import CASCADE


class Course(models.Model):
    title = models.CharField(max_length=250)
    basic_price = models.CharField(max_length=100)
    advanced_price = models.CharField(max_length=100)
    basic_duration = models.CharField(max_length=50)
    advanced_duration = models.CharField(max_length=50)

    def __str__(self):
        return self.title


class Student(models.Model):
    name = models.CharField(max_length=100)
    courses = models.ManyToManyField(Course)
    address = models.CharField(max_length=200)
    email = models.EmailField()
    phone = models.CharField(max_length=15)
    image = models.ImageField(upload_to='Students',blank=True)
    joined_date = models.DateField()

    def __str__(self):
        return self.name


class StudentFee(models.Model):
    student = models.ForeignKey(Student,on_delete=CASCADE)
    total_fee = models.ForeignKey(Course,on_delete=CASCADE) # should dynamically generate in the form based on the selection of student.how ??
    first_installment = models.IntegerField(blank=True)
    second_installment = models.IntegerField(blank=True)
    third_installment = models.IntegerField(blank=True)
    remaining = models.IntegerField(blank=True)

    def __str__(self):
        return self.total_fee

1 Ответ

0 голосов
/ 21 апреля 2019

Я думаю, что вы имеете дело с проблемой того, что следует вычислять и что хранить. Я думаю, что вам понадобится другая модель, чтобы что-то вроде CourseSelection, а стоимость должна быть рассчитана на момент оплаты и затем сохранена как CourseSelectionPayment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...