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)
Вернуться на верх