python django id 转十六进制

标签 python django

我希望从 django 模型中获取默认 ID key ,将其转换为十六进制,并在用户提交帖子时将其显示在页面上,我尝试了几种方法,但没有成功,任何人都可以指出我方向正确吗?

View .py

def post_new(request):
if request.method == "POST":
    form = PostForm(request.POST)
    if form.is_valid():
        post = form.save(commit=False)
        post.author = request.user
        post.published_date = timezone.now()
        post.save()
        return redirect('post_detail', pk=post.pk)
else:
    form = PostForm()
return render(request, 'books_log/post_edit.html', {'form': form})

如果需要,可以提供更多信息。

最佳答案

Python 的十六进制函数就是您所需要的,但问题是您无法直接从模板调用它。因此,解决方案是向您的模型添加一个方法。

class MyModel(models.Model):

   def to_hex(self):
       return hex(self.pk)

然后在您的模板中

 {{ my_object.to_hex }}

关于python django id 转十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969151/

相关文章:

python - Python中的多个ping脚本

python - 为什么声明顺序对于模块中带注释的全局变量很重要?

python - Django:如何直接在每个原始帖子对象下对帖子的评论进行排序?

Django models.Manager 无法访问模型

python - 属性错误 : 'module' object has no attribute 'EmailInput'

python - 下一个回文数

python 使用正则表达式创建新列

Django 管理员 : group by foreign key

python - 如何根据url请求更改django listview中的模板名称?

python - os.path.dirname 在 django 中返回空字符串