Я все еще новичок в Django, и я застрял с одной проблемой.Я построил модели, как определено ниже:
# models.py
from django.db import models
from bifrost.models import CustomUser
from django.urls import reverse
# Create your models here.
# Model Projektu
class Project(models.Model):
PROJECT_TYPE = (
('Scrum', 'Scrum'),
('Kanban', 'Kanban'),
)
project_key = models.CharField(max_length=8)
project_name = models.CharField(max_length=160)
project_type = models.CharField(max_length=10, choices=PROJECT_TYPE)
project_lead = models.ForeignKey(CustomUser, on_delete=models.CASCADE, null=True, blank=True)
project_date_created = models.DateField(null=True, blank=True)
def __str__(self):
return self.project_name
def get_absolute_url(self):
return reverse('project-detail', args=[str(self.id)])
class Issue(models.Model):
ISSUE_PRIORITY = (
('C', 'Critical'),
('H', 'High'),
('M', 'Medium'),
('L', 'Low'),
)
issue_type = models.TextField(default='Issue', editable=False)
issue_id = models.IntegerField(primary_key=True)
issue_date_created = models.DateField()
issue_date_updated = models.DateField(null=True, blank=True)
issue_project = models.ForeignKey(Project, on_delete=models.CASCADE)
issue_title = models.TextField()
issue_description = models.TextField(null=True, blank=True)
issue_epic = models.ForeignKey(Epic, null=True, blank=True, on_delete=models.CASCADE)
issue_sprint = models.ForeignKey(Sprint, on_delete=models.CASCADE, null=True, blank=True)
issue_priority = models.CharField(max_length=8, choices=ISSUE_PRIORITY)
issue_assignee = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='assignees', null=True, blank=True)
issue_author = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='authors')
issue_remaining_estimate = models.IntegerField(null=True, blank=True) # w minutach
issue_time_logged = models.IntegerField(default='0')
issue_attachment = models.FileField(null=True, blank=True)
issue_backlog_order = models.IntegerField(null=True, blank=True)
Теперь я хотел бы отобразить список проблем, связанных с выбранным проектом.Я читал о создании словаря в представлении или правильном наборе запросов, но у меня нет решения :( Как я могу динамически определить, какой пользователь контекста (проекта) правильно выбрал и на основе этого фильтра правильно работает?
views.py
from django.shortcuts import get_object_or_404
from django.views.generic import ListView, DetailView
from .models import Project, Issue, Epic
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.views.generic import TemplateView
from django.urls import reverse_lazy
# Create your views here.
class ProjectListView(ListView):
model = Project
template_name = 'project-list.html'
context_object_name = 'projects_list'
class ProjectBacklogView(DetailView):
template_name = 'project-backlog.html'
context_object_name = 'backlog'
urls.py
from django.urls import path
from .views import ProjectListView, ProjectDetailView, ProjectCreateView, ProjectUpdateView, ProjectDeleteView, ProjectBacklogView
urlpatterns = [
path('<int:pk>/delete', ProjectDeleteView.as_view(), name='project-delete'),
path('<int:pk>/edit/', ProjectUpdateView.as_view(), name='project-edit'),
path('new/', ProjectCreateView.as_view(), name='project-create'),
path('<int:pk>/', ProjectDetailView.as_view(), name='project-detail'),
path('<int:pk>/backlog', ProjectBacklogView.as_view(), name='project-backlog'),
path('', ProjectListView.as_view(), name='project'),
]
Большое спасибо заранее за вашу помощь!