Свяжите несколько уникальных форм с уникальным объектом в Django

Я пытаюсь создать веб-приложение с помощью Django, где пользователь может создать «Project» и в рамках этого «Project», существует четыре разных формы.

Мой вопрос: как мне связать эти формы с конкретным «проектом» в том смысле, что форма связана с этим конкретным «проектом».

Я близок к этому, но у меня возникают проблемы с «проектом-проектом» .html ',' create-request-1.html 'и' create-request-2.html 'из рендеринга из-за «PK» на URL страницы «projects.html».

точные ошибки, которые я получаю для навигации по этим страницам, -

NoReverseMatch at /projects/create-project/
Reverse for 'initiate_project' with no arguments not found. 1 pattern(s) tried: ['projects\\/project\\/(?P<pk>[0-9]+)\\/$']

Или

NoReverseMatch at /project/create-post-1/
Reverse for 'initiate_project' with no arguments not found. 1 pattern(s) tried: ['projects\\/project\\/(?P<pk>[0-9]+)\\/$']

Путь следующий:

'projects.html' -
  'create-project.html' -
  'initiate-project.html' - 
    'create-request-1.html'
    'create-request-2.html'

Я могу перейдите в каждый уникальный «проект» (например, проект 1, проект 2) в «projects.html», но я не могу попасть в мои формы («create-request-1.html», «create-request-2». html ') внутри страницы «initiate-project.html», которая находится в каждом «проекте» на странице «projects.html».

Вот мой код до сих пор -

Я близок к этому

from django.db import models

class create_new_project(models.Model):
    list_display = ('project_name', 'project_manager',
                    'technical_lead', 'test_lead')

    class Meta:
        verbose_name = 'Create New Project'
        verbose_name_plural = 'Create New Projects'
    project_name = models.CharField(max_length=100)
    project_manager = models.CharField(max_length=100)
    technical_lead = models.CharField(max_length=100)
    test_lead = models.CharField(max_length=100)
    environment_choices = (
        ('1', '1'),
        ('2', '2'),
        ('3', '3')
    )
    environment = models.CharField(
        max_length=50, choices=environment_choices, default='ICCS')

    def __str__(self):
        return self.project_name

views.py

from django.shortcuts import render
from django.shortcuts import render, get_object_or_404
from main.models import *

# Create your views here.


def index(request):
    return render(request, 'main/index.html')


def projects(request):
    CreateNewProject = create_new_project.objects.all()
    args = {'CreateNewProject': CreateNewProject}
    return render(request, 'main/projects.html', args)

def create_project(request):
    return render(request, 'main/create-project.html')


def initiate_project(request, pk):
    InitiateProjectURL = get_object_or_404(create_new_project, pk=pk)
    return render(request, 'main/initiate-project.html', {'InitiateProjectURL': InitiateProjectURL})

def create_post_request_1(request):
    return render(request, 'main/create-post-request-1.html')


def create_post_section_2(request):
    return render(request, 'main/create-post-request-2.html')

views.py

from django.urls import include, path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('projects/', views.projects, name='projects'),
    path('projects/create-project/', views.create_project, name='create_project'),
    path('projects/project/<int:pk>/',
         views.initiate_project, name='initiate_project'),
    path('project/create-post-request-1/',
         views.create_post_request_1, name='create_post_paid_request_section_1'),
    path('project/create-post-request-2/',
         views.create_post_request_2, name='create_post_request_2'),
]

projects.html

  <div class="row">
    <a href="{% url 'create_project' %}" class="card card-1 bg-red shadow m-2">
      <div class="card-body d-flex h-100">
        <div class="text-center mx-auto justify-content-center align-self-center">
          {% load staticfiles %}
          <img src="{% static 'main/images/plus.svg' %}" alt="Plus Icon" height="60vh">
          <div class="mb-3 pt-4 text-white">Create New Project</div>
        </div>
      </div>
    </a>
    {% for create_new_project in CreateNewProject %}
    <div class="card card-1 bg-white shadow m-2">
      <div class="card-body">
        <h4 class="card-title text-red">{{ create_new_project.project_name }}</h4>
        <div class="card-text pt-2 pb-2">
          <div class="mb-3"><b>Project Manager: </b>{{ create_new_project.project_name }}</div>
          <div class="mb-3"><b>Project Lead: </b>{{ create_new_project.project_manager }}</div>
          <div class="mb-3"><b>Test Lead: </b>{{ create_new_project.test_lead }}</div>
          <div class="mb-3"><b>Environment: </b>{{ create_new_project.environment }}</div>
        </div>
        <div class="float-right">
          <a href="{% url 'initiate_project' pk=create_new_project.pk %}" class="text-red">
            {% load staticfiles %}
            <img src="{% static 'main/images/next.svg' %}" class="text-red" alt="Next Icon" height="25vh"></a>
        </div>
      </div>
    </div>
    {% endfor %}
  </div>

projects.html

    <div class="col-md-2">
      <a href="{% url 'initiate_project' %}" class="btn btn-primary btn-block btn-black p-3">Cancel</a>
    </div>

Чтобы лучше проиллюстрировать то, что я пытаюсь сделать, см. следующий рисунок - Визуальное описание

0
задан 13 August 2018 в 14:01

0 ответов

Другие вопросы по тегам:

Похожие вопросы: