Django - Получение идентификатора до проверки достоверности формы

Я столкнулся с проблемой, когда у меня есть несколько форм на одной странице. Я пытаюсь обновить элемент с помощью формы обновления.

Проблема в том, что я не могу отобразить в шаблоне самые актуальные данные, которые находятся в БД.

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

models.py

class DevIssues(models.Model):
    ISSUE_CODE = [
        ('BUG', 'Bug'),
        ('BACKLOG', 'Backlog'),
        ('REQUEST', 'Request'),
        ('TODO', 'To-Do'),
    ]
    ISSUE_STATUS = [
        ('NEW', 'New'),
        ('WIP', 'In Progress'),
        ('Complete', 'Complete'),
    ]
    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')
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateField(auto_now=True)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)

forms.py

class AddProjectIssues(forms.ModelForm):
    class Meta:
        model = DevIssues
        fields= ["issue", "issue_desc", "issue_code"]
        labels = {
            'issue': 'Issue',
            'issue_desc': 'Issue Description',
            'issue_code': 'Issue Code',
        }


class UpdateProjectIssues(forms.ModelForm):
    class Meta:
        model = DevIssues
        fields= ["issue_status"]

views.py

issue_project = get_object_or_404(DevProjects, pk=pk)
    issues = DevIssues.objects.filter(project=issue_project).order_by('-created_at')
    if request.method == 'POST' and 'addissue' in request.POST:
            issue_form = AddProjectIssues(request.POST or None)
            if issue_form.is_valid():
                content = request.POST.get('issue')
                content2 = request.POST.get('issue_desc')
                content3 = request.POST.get('issue_code')
                issues = DevIssues.objects.create(issue=content, issue_desc=content2, issue_code=content3, project=project, created_by=request.user)
                issues.save()
                return redirect("/projects")

    else:
        issue_form = AddProjectIssues()


    content1 = DevIssues.objects.filter(id= **here**).first() #here I need to get ID before so I can filter and get the correct data to be displayed.
    if request.method == 'POST' and 'updateissue' in request.POST:
            update_issue_form = UpdateProjectIssues(request.POST, instance=content1)
            if update_issue_form.is_valid():
                content = request.POST.get('issue_status')
                content2 = request.POST.get('updateissue')
                notes = DevIssues.objects.filter(id=content2).update(issue_status=content)
                return redirect('/projects')

    else:
        update_issue_form = UpdateProjectIssues(instance=content1)

Опять же, PK, который я получаю через запрос DevProjects, так как эта форма Issue основана на DevProject.

Как я могу получить ID элемента, не запрашивая PK через URL, чтобы отфильтровать и получить правильные данные для отображения? Любая помощь будет принята с благодарностью.

Вам нужно получить урлы через Ajax, а не через Django URL dispatcher. Насколько я понимаю, у вас есть несколько форм, и после отправки первой формы вы хотите получить ее pk, по которому вы хотите заполнить вторую форму и сохранить первичный ключ в другой таблице модели. Пожалуйста, используйте axios для вызова урлов.

Вы можете ответить на это сообщение, чтобы передать что-либо.

Вернуться на верх