Используйте формы django для создания нового файла - PullRequest
1 голос
/ 30 сентября 2019

Я прошу прощения, если это очевидно, но я относительно новичок в Django и не смог найти для этого никаких ресурсов.

Цель

Я хотел бы создать уникальные счета, которыехранится на моем сервере (или CDN) при заполнении формы.

Вопрос

Можно ли использовать формы Django для создания файла HTML с уникальным URL-адресом (или загрузитьвновь созданный файл в AWS).

Я понимаю, как загружать файлы, я просто не могу понять, как создать новый файл с помощью формы.

Обновление

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

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Учитывая, что вы ищете уникальный HTML-файл, я предполагаю, что вы хотите отобразить счет в Интернете, а не в каком-либо загружаемом файле. Почему бы не сделать что-то подобное? Он не создает новый HTML-файл каждый раз, когда создается счет-фактура, а использует шаблон для создания счета-фактуры для каждого человека.

В вашем urls.py:

    path('invoice/<id:invoice_id>/', views.invoice, name='invoice'),

В вашем views.py:

def invoice(request, invoice_id):
    #I assume here that you are using the default form setup and saving the form to a model
    the_invoice = get_object_or_404(Invoice, invoice_id=invoice_id)
    return render(request, 'invoice_template.html', {'the_invoice': the_invoice,})

Затем, когда вы вводите mysite.com/invoice/12432, это займет 12432, назначьтеэто к аргументу invoice_id и отправьте этот аргумент в вашу функцию представления, как вы можете видеть. invoice_id будет использоваться для определения того, какой счет требуется, и будет возвращать этот счет и его данные в шаблон.

Это соответствует вашим потребностям? Любой, кто использует веб-сайт, получит этот конкретный счет. Он будет сгенерирован по запросу и не всегда будет существовать на сервере в виде статического файла.

0 голосов
/ 30 сентября 2019

Вы можете обрабатывать логику в своем представлении, где вызывается форма.

def my_view(request): if form.is_valid(): do_something_with_data()

Я бы сказал более конкретно, но это сложно, когда нет кода для ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...