0
所以我要在Django這兩種型號:Django的模型外鍵查詢
class Course(models.Model):
def get_image_path(self, filename):
return os.path.join('courses', str(self.slug), filename)
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Course, self).save(*args, **kwargs)
name = models.CharField(max_length=255, verbose_name="Nombre")
description = models.CharField(max_length=255, verbose_name="Descripción")
price = models.DecimalField(max_digits=12,decimal_places=2, verbose_name="Precio")
slug = models.SlugField(blank=True, max_length=255)
icon_img = models.ImageField(upload_to=get_image_path, blank=True, null=True, verbose_name="Imagen")
background_color = ColorField(default="#026085")
class Meta:
verbose_name = "curso"
verbose_name_plural = "cursos"
class UserCourse(models.Model):
user = models.ForeignKey(User)
course = models.ForeignKey(Course)
所以每當一個用戶「購買」的課程,它存儲在UserCourse。我有一個觀點,系統顯示用戶購買的所有課程列表。這是視圖代碼:
def user_course_list_view(request, username):
context_dict = {}
try:
user_courses = UserCourse.objects.filter(user=request.user).course_set
context_dict['courses'] = user_courses
context_dict['heading'] = "Mis cursos"
except:
context_dict['courses'] = None
context_dict['heading'] = "Mis cursos wey"
return render(request, 'courses/course_list.html', context=context_dict)
我不知道哪裏是錯誤,我似乎無法捕捉到了異常
'UserCourse.objects.filter(user = request.user).course_set'這是什麼意思?查詢集不會有一個名爲'course_set'的字段。在這種情況下,移除異常處理並查看代碼破壞的位置 – karthikr
user_courses = UserCourse.objects.filter(user = request.user).course_set.all() 這是否適合您? – n1cko