【问题标题】:strftime model object and display in html templatestrftime 模型对象并在 html 模板中显示
【发布时间】:2020-12-08 15:41:57
【问题描述】:

美好的一天,我想对创建的模型实例进行 strftime 并将其显示在 HTML 模板中(作为 transaction_id)。但我似乎没有做对。感谢您的帮助。

models.py

class Order(models.Model):
    user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    email = models.EmailField()
    address = models.CharField(max_length=250)
    phone_number = models.CharField(max_length=20)
    city = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    paid = models.BooleanField(default=False)
    braintree_id = models.CharField(max_length=150, blank=True)
    coupon = models.ForeignKey(Coupon, related_name='orders', null=True, blank=True, on_delete=models.SET_NULL)
    discount = models.IntegerField(default=0, validators=[
        MinValueValidator(0),
        MaxValueValidator(100)
    ])

views.py

def order_list(request):#datetime.now().strftime("%Y%m%d%H%M%S")
    transaction_id = Order.objects.get(created)
    orders = Order.objects.all()
    current_user = request.user
    success = Order.objects.filter(user=current_user.id).filter(paid=True)
    fail = Order.objects.filter(user=current_user.id).filter(paid=False)
    return render(request, 'orders/order/order_list.html', {
        'success': success,
        'fail': fail,
        'current_user': current_user,
        'orders':orders,
        'transaction_id':transaction_id,
    })

html

<p class="card-text">
<mark style="color: whitesmoke; background-color: brown;border-radius: 3px;font-weight: bold;">{{transaction_id}}</mark>
</p>

【问题讨论】:

  • 可以分享您遇到的错误吗?
  • NameError NameError: name 'created' is not defined

标签: python-3.x django strftime


【解决方案1】:

您收到“transaction_id = Order.objects.get(created)”行的错误

get() 方法中“创建”了什么

【讨论】:

  • 创建在订单模型中
  • 我仍然很困惑,就我的想法而言,你想从模型中创建字段作为 transaction_id 对吗?? transaction_id = Order.objects.get(id=1)
  • created 是订单模型中的一个 datetime 字段,但我想将 datetime 字段显示为 strftime 你有什么想法吗?
  • 你想显示所有订单transaction_id??
  • views.py transaction_id = Order.objects.get(id=1) html {{ transaction_id.created }} 试试这个...
【解决方案2】:

嗯,这就是我为解决这个问题所做的 我在我的 models.py 中添加了 strftime 函数

models.py

    def htmldisplaytime(self):
        time = self.created.strftime("%Y%m%d%H%M%S")
        return time

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 2019-12-11
    • 1970-01-01
    • 2013-04-27
    • 2015-02-13
    • 1970-01-01
    • 2011-02-23
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多