Моя django цель приложения очень проста: пользователь решает алгоритм из какого-то источника (например, Hackerrank), возвращается в мое приложение и отправляет отзыв о результате (эти алгоритмы передаются мне пользователями как задача) , Теперь я хочу получить идентификатор задачи при нажатии на кнопку отправить после написания отзыва. Поскольку из панели администратора я мог видеть, что для какой задачи была написана обратная связь.
Кстати, я получаю ошибку no such column: algorithmtrackerapp_taskfeedback.task_id
из-за того, что считаю задачу внешним ключом обратной связи. Вот мои коды:
views.py
:
def index(request):
tasks = Task.objects.all().order_by('-task_deadline')
task_feedbacks = TaskFeedback.objects.all()
form = CreateFeedbackForm()
context = {
'tasks': tasks,
'task_feedbacks': task_feedbacks,
'form': form
}
if request.method == 'POST':
form = CreateFeedbackForm(request.POST)
if form.is_valid():
form.save()
return render(request, 'index.html', context)
models.py
:
class Task(models.Model):
task_name = models.CharField(max_length=100)
task_url = models.URLField(max_length=300, blank=True, null=True)
task_source = models.CharField(max_length=50, blank=True, null=True)
task_deadline = models.DateTimeField()
uploaded_by = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.task_name
class TaskFeedback(models.Model):
task = models.ForeignKey(Task, on_delete=models.CASCADE)
sender = CurrentUserField()
is_solved = models.BooleanField(default=False)
feedback_content = models.TextField(max_length=500, null=True, blank=True)
date_added = models.DateTimeField(auto_now_add = True)
def __str__(self):
return self.feedback_content
Это мой интерфейс: