ForeignKey Не возвращает связанные данные, как ожидалось

У меня есть 2 модели Project и Fundamentals основы связаны через FK с Project. У меня есть представление, которое позволяет мне добавлять данные в таблицу fundamentals, а также представление для обновления fundamentals, когда данные уже существуют.

Но когда я пытаюсь получить данные, я передаю project_id в запросе. Но, похоже, происходит следующее: если у меня 5 проектов и из проекта 5 я добавляю данные fundamentals, то данные в таблице имеют ID 1, так как это первая запись в таблице fundamentals. но id моего проекта 5, так как это 5-й проект

Если я перейду к проекту 1 и добавлю fundamentals, он вернет данные из проекта 5.

Надеюсь, это имеет смысл?

Я предполагаю, что это способ, которым я запрашиваю данные в этих представлениях:

def fundamentals_view(request, project_id):
    check_exist = Fundamentals.objects.filter(project_name_id=project_id)
    if check_exist:
        return update_fundamentals_view(request, project_id)
    else:
        return add_fundamentals_view(request, project_id)


@login_required
def add_fundamentals_view(request, project_id):
    project = get_object_or_404(Project, pk=project_id)
    if request.method == 'POST':
        form = FundamentalsForm(request.POST)
        if form.is_valid():
           fundamental = form.save(commit=False)
           fundamental.project_name = project
           fundamental.save()
           return redirect('dashboard.html')
    else:
        form = FundamentalsForm()
    return render(request, 'pages/add_fundamentals.html', {'project': project, "form": form})


def update_fundamentals_view(request, project_id):
    project = get_object_or_404(Fundamentals, pk=project_id)
    form = FundamentalsForm(request.POST or None, instance=project)
    if form.is_valid():
        form.save()
        return redirect('/')
    return render(request, 'pages/update_fundamentals.html', {'project': project, "form": form})

Должен ли я посылать в запросе что-то другое, а не project_id

Модель

class Project(models.Model):

    project_name = models.CharField(max_length=50, blank=False, unique=True)
    project_website = models.URLField(max_length=50, blank=True)
    project_description = models.TextField(blank=True)
    
    def __str__(self):
        return str(self.project_name)


class Fundamentals(models.Model):
    Yes_No_Choices = [
        ('Yes', 'Yes'),
        ('No', 'No'),
        ('Unknown', 'Unknown')
    ]
    Good_Bad_Choices = [
        ('Good', 'Good'),
        ('Bad', 'Bad'),
        ('Average', 'Average'),
        ('Unknown', 'Unknown')
    ]

    project_name = models.ForeignKey(Project, on_delete=models.CASCADE)
    project_roadmap = models.CharField(max_length=25, blank=True, choices=Yes_No_Choices)
    project_tier_entry_level = models.CharField(max_length=25, blank=True, choices=Yes_No_Choices)
    project_tier_entry_level_notes = models.CharField(max_length=25, blank=True)

    def __str__(self):
       return str(self.project_name
Вернуться на верх