Невозможно получить объект (который существует на самом деле), используя get_object_or_404 - PullRequest
0 голосов
/ 05 июня 2019

Невозможно получить объект модели StackedInline, используя get_object_or_404. Модуль ((это модель StackedInLine) связан с курсом через внешний ключ.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...