Django - Как фильтровать при получении списка значений (values_list)?

У меня есть приложение, в котором есть несколько объектов, связанных с одной Моделью. Когда я пытаюсь получить данные для отображения в форме (для обновления), она либо выдает ошибку, либо не отображает никаких данных.

Для иллюстрации схемы мы имеем OBJECT(ID):

Project(1):
    Issue(1)
    Issue(42)
    Issue(66)
    Issue(97)

Что происходит выше, у меня есть несколько проблем, связанных с проектом. Я получаю идентификаторы проблем в проекте с помощью следующего набора запросов.

get_issue_id = get_object_or_404(DevProjects, pk=pk)
issue_id = DevIssues.objects.filter(project=get_issue_id).values_list('id', flat=True)

Который возвращает:

<QuerySet [1, 42, 66, 97]>

Я пытаюсь использовать следующий набор запросов для фильтрации ID проблемы из списка значений (values_list), чтобы установить Instance= (для форм) в наборе запросов для получения данных и отображения этих данных в форме только для ID проблем из Project PK, которые я запрашиваю.

update_issue = DevIssues.objects.filter(id=issue_id)

Ниже приведен мой текущий view.py

get_issue_id = get_object_or_404(DevProjects, pk=pk)
issue_id = DevIssues.objects.filter(project=get_issue_id).values_list('id', flat=True)
update_issue = DevIssues.objects.filter(id=issue_id)
update_issue_form = UpdateProjectIssues(instance=update_issue)
if request.method == 'POST' and 'updateissue' in request.POST:
      update_issue_form = UpdateProjectIssues(request.POST, instance=update_issue)
            if update_issue_form.is_valid():
                update_issue_form.save()

Вот models.py для DevProjects и DevIssues:

class DevProjects(models.Model):
    PROJECT_TYPE = [
        ('NEW_APP', 'New Application'),
        ('UPDATE_APP', 'Update Application'),
        ('BUG_FIX', 'Bug Fixes')
    ]
    PROJECT_STATUS = [
        ('New', 'New'),
        ('In Progress', 'In Progress'),
        ('Complete', 'Complete'),
    ]
    project_id = models.CharField(max_length=15, editable=False)
    project_title = models.CharField(max_length=100)
    project_desc = models.CharField(max_length=500)
    project_category = models.CharField(max_length=25, choices=PROJECT_TYPE, null=True, blank=True)
    project_status = models.CharField(max_length=25, choices=PROJECT_STATUS, default='New')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateField(auto_now=True)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

    def save(self, *args, **kwargs):
        super(DevProjects, self).save(**kwargs)
        self.project_id = 'PROJ-' + str(self.id)
        super(DevProjects, self).save(**kwargs)

    def __str__(self):
        return self.project_title

    def get_absolute_url(self):
        return reverse('update_project', args=[self.id])


class DevProjectNotes(models.Model):
    project = models.ForeignKey(DevProjects, on_delete=models.CASCADE, related_name='notes')
    notes = models.CharField(max_length=500)
    created_at = models.DateTimeField(auto_now_add=True)
    added_by = models.ForeignKey(User, on_delete=models.CASCADE)


class DevIssues(models.Model):
    ISSUE_CODE = [
        ('BUG', 'Bug'),
        ('BACKLOG', 'Backlog'),
        ('REQUEST', 'Request'),
        ('TODO', 'To-Do'),
    ]
    ISSUE_STATUS = [
        ('New', 'New'),
        ('In Progress', 'In Progress'),
        ('Complete', 'Complete'),
    ]
    issue_id = models.CharField(max_length=15, editable=False)
    project = models.ForeignKey(DevProjects, on_delete=models.CASCADE, related_name='issue')
    issue = models.CharField(max_length=100)
    issue_desc = models.CharField(max_length=500)
    issue_code = models.CharField(max_length=9, choices=ISSUE_CODE, null=True, blank=True)
    issue_status = models.CharField(max_length=15, choices=ISSUE_STATUS, default='New')
    issue_resolution = models.CharField(max_length=500, null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateField(auto_now=True)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

    def save(self, *args, **kwargs):
        self.issue_id = 'ISSUE-' + str(self.id)
        super(DevIssues, self).save(**kwargs)

Вот мой файл forms.py:

class UpdateProjectIssues(forms.ModelForm):
    class Meta:
        model = DevIssues
        fields= ["issue", "issue_desc", "issue_code", "issue_status"]
        labels = {
            'issue_status': 'Update Status'
        }

И вот с какой ошибкой я сталкиваюсь в настоящее время:

'QuerySet' object has no attribute '_meta'

Когда я использую get(), вот какую ошибку я получаю:

The QuerySet value for an exact lookup must be limited to one result using slicing.

Другая ошибка, которую я получаю, когда использую что-то вроде id__in:

get() returned more than one DevIssues -- it returned 2!

Как мне отфильтровать 'issue_id', кверисет values_list, чтобы получить данные и отобразить правильные данные в форме?

Получить экземпляр проекта

project_id = get_object_or_404(DevProjects, pk=pk)

Для получения идентификаторов проблем, связанных с данным экземпляром проекта

issue_ids = DevIssues.objects.filter(project=project_id).values_list('id', flat=True)

Получение объектов проблемы обновления

update_issue = DevIssues.objects.filter(id__in=issue_ids)

но вы уже получили тот же результат в этой строке

update_issue = DevIssues.objects.filter(project=project_id)

Итак, не нужно IN qyery.

Вы получили ошибку, потому что передали queryset вместо object в этой строке

update_issue_form = UpdateProjectIssues(instance=update_issue)
Вернуться на верх