many-to-many 관계의 속성에 액세스하려면 어떻게해야합니까? 그리고 모델에.many-to-many 관계의 속성에 액세스하는 방법
class Courses(models.Model):
courses_name = models.CharField(max_length=100)
duration = models.CharField(max_length=100)
def __str__(self):
return u'%s' % (self.courses_name)
class Meta:
verbose_name_plural = 'Courses'
verbose_name = 'Courses'
class EducationEntity(models.Model):
name = models.CharField(max_length=100)
type = models.ForeignKey(EducationEntityType)
location_type = models.ForeignKey(LocationType)
institute_type = models.ForeignKey(InstituteType)
course = models.ManyToManyField(Courses)
established=models.DateField(default=datetime.date.today)
approved_by=models.CharField(max_length=200)
college_facilities=models.CharField(max_length=200)
image = models.ImageField(upload_to='images/',default="none")
def __str__(self):
return u'%s' % (self.name)
class Meta:
verbose_name_plural = 'Education Entity'
verbose_name = 'Education Entity'
@property
def course_(self):
# import ipdb;
# ipdb.set_trace()
amount=''
data = []
duration=''
interest_rate=''
loan=[]
for i in self.course.all():
try:
for cou in EducationEntityCourses.objects.filter(course=i):
for l in LoanDetails.objects.filter(education_entity_courses__course=i):
amount=l.amount
for lo in LoanTenure.objects.filter(loan_details__education_entity_courses__course=l):
loan.append({"duration": lo.duration,"interest_rate": lo.interest_rate})
except Exception as e:
amount=''
import ipdb;
ipdb.set_trace()
data.append({
"courses_name": i.courses_name,
"duration":cou.duration,
"course_type":cou.course_type,
"tution_fees":cou.tution_fees,
"hostel_fees":cou.hostel_fees,
"other_fees":cou.other_fees,
"amount":amount,
"loan":loan
})
import ipdb;
ipdb.set_trace()
return data
class EducationEntityCourses(models.Model):
education_entity = models.ForeignKey(EducationEntity)
course = models.ForeignKey(Courses)
duration = models.CharField(max_length=100)
course_type = models.ForeignKey(CourseType)
tution_fees = models.CharField(max_length=100)
hostel_fees = models.CharField(max_length=100)
other_fees = models.CharField(max_length=100)
def __str__(self):
return u'%s, %s' % (self.education_entity.name, self.course.courses_name)
class Meta:
verbose_name_plural = 'Education Entity Courses'
verbose_name = 'Education Entity Courses'
class LoanDetails (models.Model):
education_entity_courses = models.ForeignKey(EducationEntityCourses)
# training_coaching=models.ForeignKey(TrainingCoaching,blank=True,null=True)
amount = models.CharField(max_length=100)
def get_course(self):
"""
get course name
:return:
"""
return self.education_entity_courses.course.courses_name
get_course.short_description="Course Name"
def __str__(self):
return u'%s, %s' % (self.education_entity_courses.course.courses_name,self.education_entity_courses.education_entity.name)
class Meta:
verbose_name_plural = 'Loan Details'
verbose_name = 'Loan Details'
class LoanTenure(models.Model):
duration = models.ForeignKey(Duration)
interest_rate=models.FloatField(max_length=5)
loan_details=models.ForeignKey(LoanDetails)
def get_college(self):
"""
get course name
:return:
"""
return self.loan_details.education_entity_courses.education_entity.name
get_college.short_description = "College Name"
def __str__(self):
return u'%s' % (self.loan_details.education_entity_courses.course.courses_name)
class Meta:
verbose_name_plural = 'Loan Tenure'
verbose_name = 'Loan Tenure'
(코스) 세부 정보, 대출 세부 정보 및 대출 기간에 대한 세부 정보를 얻고 싶습니다. 동일한 데이터가 반복됩니다. Tenure 특정 과정을 대출하고 싶습니다.
{ "이름": "기술의 AD 파텔 연구소 - [ADIT], Vallabh Vidyanagar" "유형": "대학", "college_facilities": "호스텔 의료", "institute_type" " 개인 ", "LOCATION_TYPE ":"국내 ", "approved_by ":"GTU, 아메 다 바드 " "설립 ":"2000-01-01 ", "course_ "[ { "tution_fees "" "545", "courses_name": "BTECH", "hostel_fees": "545", "기간": "54654", "금액": "45485", "대출" { "interest_rate"1 "기간": "12" } { "interest_rate"1254 "기간": "6" } { "interest_rate"78 "기간": "12" } { "interest_rate"1 "기간": "12" } { "interest_rate"1254 "기간": "6" } { "interest_rate": 78,,515,"기간": "12" } { "interest_rate"1 "기간": "12" } { "interest_rate"1254 "기간": "6" } , { "interest_rate"78 "기간": "12" } { "interest_rate"1 "기간": "12" } { "interest_rate"1254 "재생 시간": "6" }, { "interest_rate"78 "기간": "12" } { "interest_rate"14 "기간": "6" } ] "other_fees": "454" "course_type": "full_time" } { "tution_fees": "80000" "courses_name": "에 MTech" "hostel_fees": "0", "기간": "3", "금액": "3.2 " "대출금 "[ { "interest_rate "1 "기간 ":"12 " } { "interest_rate "1254 "기간 ":"6 " } { "interest_rate"78 "기간": "12" } { "interest_rate"1 "기간": "12" } { "interest_rate"1254 " duration ":"6 " }, {,363,210 "interest_rate"78 "기간": "12" } { "interest_rate"1 "기간": "12" } { "interest_rate"1254 "지속 ":"6 " } { "interest_rate "78 "기간 ":"12 " } { "interest_rate "1 "기간 ":"12 " } { "interest_rate": 1254, "재생 시간": "6",691,363,210} { "interest_rate"78 "기간": "12" } { "interest_rate"14 "기간": "6" } ] "other_fees" "0", "course_type": "full_time" } , "objectID에": "2" }
당신이 할 수있는