Передача иностранного ключа на страницу и получение данных

У меня есть страница, которая в основном отображает введенные пользователем данные на основе проекта. Начальная страница содержит всего несколько полей, одно из которых project_name, которое я установил как unique

project_name = models.CharField(max_length=50, blank=False, unique=True)

С этой страницы я хочу открыть другую страницу, основанную на project_name, которая позволяет добавлять дополнительные детали и хранить их в другой модели.

Models.py

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)
    ckeditor_classic = models.TextField(blank=True)

    def __str__(self):
        return str(self.project_name)


class Fundamentals(models.Model):

    project_name = models.ForeignKey(Project, to_field='project_name', on_delete=models.CASCADE)
    project_website = models.URLField(max_length=100, blank=True)
    project_roadmap = models.CharField(max_length=25)
 

    def __str__(self):
        return str(self.project_name)

Я пытаюсь сделать следующее: загрузить вторую страницу, но отобразить project_name и иметь возможность связать следующий набор данных с project

Я думаю, что мне нужно сделать это через views и urls, но я не могу заставить это работать.

View.py

@login_required
def AddFundamentals(request,project_id):
    project = Project.objects.get(pk=project_id)
    form = AddFundamentalsForm(request.POST or None, instance=project)
    if form.is_valid():
        form.save()
        return redirect('dahsboard.html')
    return render(request, 'pages/critical_fundementals.html', {'project': project, "form": form})

Возвращенная ошибка - это AddFundamentals() missing 1 required positional argument: 'project_id'

но я передаю это через URL

path('fundanmentals/<project_id>', view=AddFundamentals, name="add_fundamentals"),

Нужно ли мне сделать что-то еще в представлении, чтобы вернуть данные на основе PK? Я действительно борюсь с этим :(

)

Спасибо @Hills.

Это решило мою проблему path('fundamentals/<int:project_id>/'

Пришлось убрать трелинг / и все ожило :)

Спасибо всем.

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