gpt4 book ai didi

python - 创建自定义primary_key字段

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:11 25 4
gpt4 key购买 nike

我最初有 Django 模型的标准默认 id 字段。但是我想切换到随机的 10-15 字母数字字符串。

如果您好奇的话,这是字符串(它有效):

def random_string(chars=string.ascii_letters + string.digits):
size = random.randrange(10, 15)
return str(''.join(random.choice(chars) for _ in range(size)))

这是我的模型。我只是在字段中添加并执行了 migratemakemigrations:

class Post(models.Model):
id = models.CharField(max_length=18, primary_key=True, default=random_string())
user = models.ForeignKey(User, blank=True, null=True)
content = models.TextField(null=True, blank=True)

预计它不会顺利转换 - 当我发帖时,我收到以下non_field_error:

Non Errors: <bound method BaseForm.non_field_errors of <PostForm bound=False, valid=False, fields=(content;id;user)>>
[20/Mar/2018 09:38:37] "POST /post/ HTTP/1.1" 200 11482

观看次数

def post(request):

if request.user.is_authenticated():
form_post = PostForm(request.POST or None, request.FILES or None)
if form_post.is_valid():
instance = form_post.save(commit=False)
instance.user = request.user

instance.save()

return HttpResponseRedirect('/')
else:
form_post = PostForm()
print('Errors:', form_post.errors) #prints nothing
print('Non Errors:', form_post.non_field_errors)

context = {
'form_post': form_post,
}

return render(request, 'post/post.html', context)
else:
return HttpResponseRedirect("/accounts/signup/")

谁能告诉我为什么会出现non_field_error?以下是该模型的随附表格:

class PostForm(forms.ModelForm):

class Meta:
model = Post
fields = [
'content',
'id',
'user'
]

最佳答案

non_field_errors 是一种方法,而不是常规属性,errors 是:

print('Non Errors:', form_post.non_field_errors())

关于python - 创建自定义primary_key字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49381132/

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