【发布时间】:2022-08-11 19:49:36
【问题描述】:
我们有以下三个模型。
class Category(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
title = models.CharField(max_length=200)
class CategoryManager(models.Model):
category = models.ForeignKey(Category, on_delete=models.PROTECT, verbose_name=_(\'Course Category\'), related_name=\"category_categorymanager\")
manager = models.ForeignKey(_user, verbose_name=_(\'Category Manager\'), on_delete=models.CASCADE, related_name=\"user_categorymanager\")
class Course(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
title = models.CharField(max_length=200, verbose_name=_(\'Course Name\'))
...
price = models.DecimalField(max_digits=7, decimal_places=2, verbose_name=_(\'Course Price\'), blank=True, null=True)
slug = models.SlugField(unique=True, blank=True)
category = models.ForeignKey(Category, related_name=\'courses_category\', on_delete=models.PROTECT)
我们想通过 CategoryManager 过滤课程。
@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
def get_queryset(self, request):
category_manager_list=CategoryManager.objects.filter(manager=request.user)
...
return ....
使用上面获得的 category_manager_list,我们想要列出属于这些类别的所有课程。
-
3-展示你尝试过的东西。
-
当您收到用户的请求时,您应该在
views.py中执行此操作。但是你没有显示你的views.py。 -
我编辑了问题,我们使用 admin.py