Как я могу отправить недавно сохраненные данные в шаблон в той же функции просмотра в django - PullRequest
2 голосов
/ 02 апреля 2020

view.py
В приведенном ниже коде я сохранил свои последние данные в модели и создал словарь order = order.save(), потому что я могу использовать это в своем шаблоне. Когда я запускаю код, ордер имеет значение `` `Нет``.

Что я могу для него сделать.

     def post(self, request, product_id):
          product = Product.objects.get(id=product_id)
          if request.POST['address'] and request.POST['quantity']:
               order = Order()
               order.or_proName = product.pro_name
               order.or_companyName = product.companyName
               order.or_quatity = request.POST['quantity']
               order.or_quatity = int( order.or_quatity)
               orderPrice = order.or_quatity*product.Sale_Price
               order.or_bill = 100 + orderPrice
               order.pub_date = timezone.datetime.now()
               product.Quantity -= order.or_quatity
               product.save()
               order = order.save()
               args = {'order':order}
               return render(request, self.red_templateName, args)


Ответы [ 2 ]

3 голосов
/ 02 апреля 2020

django.db.models.Model.save() обычно ничего не возвращает (в отличие от функции django.forms.Form.save())

Удаляет строку order = order.save() из вашего кода

Вы можете увидеть, как Model.save() реализовано здесь https://github.com/django/django/blob/master/django/db/models/base.py#L666

2 голосов
/ 02 апреля 2020

Вы не должны присваивать результат функции .save() для order, поскольку это действительно None. Просто .save() порядок и используйте функцию order далее в вашем представлении:

def post(self, request, product_id):
    product = Product.objects.get(id=product_id)
    if request.POST['address'] and request.POST['quantity']:
        order = Order()
        order.or_proName = product.pro_name
        order.or_companyName = product.companyName
        order.or_quatity = request.POST['quantity']
        order.or_quatity = int( order.or_quatity)
        orderPrice = order.or_quatity*product.Sale_Price
        order.or_bill = 100 + orderPrice
        order.pub_date = timezone.datetime.now()
        product.Quantity -= order.or_quatity
        product.save()
        <b>order.save()</b>
        args = {'order':order}
        return render(request, self.red_templateName, args)

Однако вы должны определить также случай else, так как метод post должен всегда возвращает HttpResponse объект, например сообщение об ошибке.

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