Я создаю веб-приложение, в котором люди могут писать проекты. Проекты хранятся в модели, и я хочу использовать пользователя в качестве внешнего ключа, чтобы я мог показать пользователю его проекты на веб-странице. Экземпляры вводятся через форму.
Код всегда назначает значение по умолчанию (1), а не пользователя. Может кто-нибудь из вас видит причину этой ошибки?
Вот код для создания модели в models.py:
class PersonalProject(models.Model):
user = models.ForeignKey(User, default=1, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
description = models.TextField()
code = models.TextField()
def __str__(self):
return self.title
Вот код для представления формы для создания проект в views.py:
def newproject(request):
if User is None:
messages.error(request, "Must be signed in")
return redirect('main:dashboard')
if request.method == "POST":
form = NewProjectForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('main:dashboard')
else:
messages.error(request, "Error")
else:
form = NewProjectForm()
return render(request,
"main/newproject.html",
{"form":form})
Вот код для представления домашней страницы в views.py:
def dashboard(request):
messages.info(request, request.user.username)
return render(request=request,
template_name="main/dashboard.html",
context={"structuredprojects": StructuredProject.objects.all(), "personalprojects": PersonalProject.objects.filter(user__username=request.user.username)})
Я действительно надеюсь, что вы можете помочь - я застрял на этом на некоторое время