Django - нет такого столбца Внешний ключ - PullRequest
0 голосов
/ 09 апреля 2020

Моя 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

Это мой интерфейс:

enter image description here

...