gpt4 book ai didi

django - 对于类型字符 varying(N) 值太长

转载 作者:行者123 更新时间:2023-11-29 11:35:36 26 4
gpt4 key购买 nike

我的模型有一个 SlugField。当我尝试将 slug 字段设置为比字段的 max_length 参数(默认为 50)长的字符串来保存此模型的实例时,我从 Postgresql 收到以下错误:value too long for type character varying(50)

难道 Django(或 Postgresql)不应该在保存时截断字符串吗?除了每次都手动截断它之外,我还能做些什么来修复它?

最佳答案

要么安装south并调整列的大小(最佳选择),或创建一个 pre_save signal并添加代码以在保存之前将该字段截断为 50 个字符。像这样的东西:

from django.db.models.signals import pre_save
from app.model import mymodel

def truncater(sender, instance, **kwargs):
if sender is mymodel:
if len(instance.fieldname)>50:
instance.fieldname = instance.fieldname[:50]
pre_save.connect(truncater, sender=mymodel)

关于django - 对于类型字符 varying(N) 值太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com