Django: сохранять поле ForeignKey при сохранении формы и фильтровать по нему
В моем проекте две модели, и у меня проблемы с двумя частями моего кода:
form.instance.docfile = request.docfile.document
здесь я хотел бы автоматически сохранить связь между моделью Color и моделью Document, но это не работает
color = Color.objects.filter(docfile=request.docfile.document).order_by("id")[0]
здесь я хотел бы фильтровать и получать только информацию о цвете для конкретного файла, с которым связана модель Color, и только для файла, загруженного пользователем. Спасибо всем за помощь.
Модель
class Document(models.Model): ]
user = models.ForeignKey(ObjectInformation, on_delete=models.CASCADE)
docfile = models.FileField(storage=NumberStorage(), upload_to=directory)
upload_date = models.DateField(default=datetime.now)
class Color(models.Model):
docfile = models.OneToOneField(Document, on_delete=models.CASCADE)
color_one = models.CharField(null=True)
color_two = models.CharField(null=True)
View
def upload(request):
if request.method == 'POST':
form = ColorForm(request.POST, request.FILES)
if form.is_valid():
form.instance.docfile = request.docfile.document
form.save()
if not result.has_errors():
message = 'The form is not valid. '
else:
form = ColorForm()
documents = Document.objects.filter(user=request.user.userinformation).all()
context = {
'documents': documents,
'form': form
}
return render(request, 'list.html', context)
def color_view(request, doc_id):
docfile = Document.objects.filter(pk=doc_id)
color = Color.objects.filter(docfile=request.docfile.document).order_by("id")[0]
context = {
'docfile': docfile,
'color': color
}
return render(request, 'show.html', context)