首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'CourseTake‘对象没有属性'points’

'CourseTake‘对象没有属性'points’
EN

Stack Overflow用户
提问于 2022-10-17 02:05:13
回答 1查看 33关注 0票数 0

models.py

代码语言:javascript
复制
class Course(models.Model):
title = models.CharField(max_length=255)
credit_hours = models.IntegerField()
instructor = models.ForeignKey(Instructor, on_delete=models.SET_NULL, null=True, related_name='course')
def __str__(self) -> str:
    return self.title



class CourseTake(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE, related_name='coursetake') #similar to reviews in the product class
course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='course')
grade = models.PositiveIntegerField()

class Meta:
    unique_together = [['student', 'course']]

类SimpleCourseSerializer(serializers.ModelSerializer):类元:模型=课程字段=“标题”,“credit_hours”

代码语言:javascript
复制
class CourseTakeSerializer(serializers.ModelSerializer):
course = SimpleCourseSerializer()
points = serializers.SerializerMethodField()
grade_points = serializers.SerializerMethodField()

class Meta:
    model = CourseTake
    fields = ['id','course', 'grade', 'points', 'grade_points']

def get_points(self, coursetake: CourseTake):
    if coursetake.grade >= 90:
        return '4'
    elif coursetake.grade >= 70:
        return '3'
    elif coursetake.grade >= 50:
        return '2'
    return '1'

#TRY AND ERROR  
#Terminal: 'CourseTake' object has no attribute 'points'
def get_grade_points(self, coursetake: CourseTake):
    return coursetake.course.credit_hours * coursetake.points 

我想要计算分数,这将用于计算每个学生的GPA分数以后。因此,get_grade_point()将返回credit_hours *重合点。我的问题是,points字段不是模型或序列化程序的一部分。我创建了一个函数来计算每门课程的分数。因为我定义了点,Django一直说它不是一个属性,每当我试图访问点值时。是否有一种方法来访问get_grade_function中的点值?

图像以获得更好的视图

EN

回答 1

Stack Overflow用户

发布于 2022-10-17 04:39:55

取决于您想要什么,我建议在模型上使用Save方法

代码语言:javascript
复制
def save(self, *args, **kwargs):

如果您想将结果保存在数据库中,或者如果不想保存,也可以使用@proparty在模型类中创建只读方法。

之后,您可以很容易地在序列化程序中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74091953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档