Как я могу связать файлы с моделью статьи, которые загружаются с помощью django-drf-filepond?

Info: Я использую Django-drf-filepond в моем django проекте для загрузки файлов! django-drf-filepond имеет две модели TemporaryUpload(1) и StoredUpload(2). По умолчанию django-drf-filepond загружает файлы в TemporaryUpload перед отправкой формы. когда пользователь отправляет форму django-drf-filepond получает данные из TemporaryUpload и добавляет их в модель StoredUpload и удаляет их из модели TemporaryUpload, данные которой добавляются в StoredUpload.

Что я хочу сделать: Когда пользователь нажимает кнопку отправки, статья создается, и приложенные файлы также связываются со статьей.

Что у меня есть на данный момент:

  1. i have ArticleModel/ArticleForm.

  2. The article form data is submited and the files are appended into StoreUpload but the files are not linked it with an article. i want to linked it with article. when the user hit submit button.

  3. The data is submited by ajax.

models.py

class StoredUpload(models.Model):
    post = models.ForeignKey(Article, on_delete=models.CASCADE, null=True) # This is the article model ForeignKey

    # The unique upload ID assigned to this file when it was originally
    upload_id = models.CharField(
        primary_key=True, max_length=22, validators=[MinLengthValidator(22)]
    )
    file = models.FileField(storage=DrfFilePondStoredStorage(), max_length=2048)
    uploaded = models.DateTimeField()
    stored = models.DateTimeField(auto_now_add=True)
    uploaded_by = models.ForeignKey(
        settings.AUTH_USER_MODEL, null=True, blank=True, on_delete=models.CASCADE
    )

    def get_absolute_file_path(self):
        fsp = local_settings.FILE_STORE_PATH
        if not fsp:
            fsp = ""
        return os.path.join(fsp, self.file.name)

Api.py исходный код

views.py

я не понимаю, как я могу добавить экземпляр post в экземпляр store_upload?

class SubmitFormView(View):
    form_class = ArticleForm

    # Handle POST request
    def post(self, request):
        form = self.form_class(request.POST)
        if form.is_valid():
            post = form.save() # here is is the instance of an article which i want to append it into StoredUpload as a ForeignKey

        # StoredUpload(post=post)  # did't get anything here!
        # Get the post request and extract the IDs of the temporary upload(s)
        # to be permanently stored.
        data = request.POST
        print(data)
        filepond_ids = data.getlist("filepond")
        stored_uploads = []
        for upload_id in filepond_ids:
            tu = TemporaryUpload.objects.get(upload_id=upload_id)
            store_upload(upload_id, os.path.join(upload_id, tu.upload_name))
            stored_uploads.append(upload_id)

        # Return the list of uploads that were stored.
        return HttpResponse(
            json.dumps({"status": "OK", "uploads": stored_uploads}),
            content_type="application/json",
        )
Вернуться на верх