无法使用get_object_or_404获取对象(实际上存在)

时间:2019-06-05 16:05:28

标签: django

无法使用get_object_or_404获取StackedInline模型的对象。 Module((这是一个StackedInLine模型)通过外键链接到Course。

def dispatch(self, request, module_id, model_name, id=None):
    self.module = get_object_or_404(Module, id=module_id, course__owner=request.user)
    self.model = self.get_model(model_name)
    if id:
        self.obj = get_object_or_404(self.model, id=id, owner=request.user)
    return super(ContentCreateUpdateView, self).dispatch(request, module_id, model_name, id)

下面的课程和模块模型

class Course(models.Model): 
    owner=models.ForeignKey(User,related_name='courses_created',on_delete=models.CASCADE)
    title=models.CharField(max_length=200)
    slug=models.SlugField(max_length=200,unique=True)
    overview=models.TextField()
    created=models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering=('-created',)
    def __str__(self):
        return self.title


class Module(models.Model):
     course=models.ForeignKey(Course,related_name='modules',on_delete=models.CASCADE)
    title=models.CharField(max_length=200)
    description=models.TextField(blank=True)
    order=OrderField(blank=True,for_fields=['course'])#ordering of modules wrt courses


    def __str__(self):
        return '{}. {}'.format(self.order,self.title)

0 个答案:

没有答案