gpt4 book ai didi

django formfield_overrides 与 TextField 中的 max_length 冲突

转载 作者:行者123 更新时间:2023-12-04 18:46:20 27 4
gpt4 key购买 nike

所以我有一个模型,其中一个字段是这样的:

dirlab_cruce = models.CharField(verbose_name='Cruce', max_length=40, null=True, blank=True)

为了能够让所有文本字段具有相同的长度,我在 admin.py 中这样做了:

formfield_overrides = {
models.CharField: {'widget': TextInput(attrs={'size':'100%'})}
}

这使得所有文本字段的宽度都与表单相同,但将我可以输入的文本限制为 4 个字符。

注释 formfield_overrides block 给我一个 40 个字符的输入,就像我想要的那样,它缩短了字符字段。

我做错了什么吗?

谢谢

最佳答案

我遇到了同样的问题。这是一个 Django 1.4 错误,所以我刚刚提交了一份报告。这是我提交的票证,其中包含重现错误的简单方法:

标题:使用 formfield_overrides 设置 CharField 大小导致所有管理字段使用模型定义中的最后一个 max_length

描述:查看如何使用 max_length 100 和 14 定义 title 和 ISBN。覆盖导致两个字段的 max_length 都为 14,相对于正在更改表单中编辑的用户 - 第 15 个字符不能插入 title 字段。

模型.py:

from django.db import models

class Book(models.Model):
title = models.CharField(max_length=100,blank=True, null=True)
ISBN13 = models.CharField(max_length=14,unique=True)
def __unicode__(self):
return self.title

admin.py:

from django.contrib import admin
from django.db import models
from django.forms import TextInput
from books.models import Book

class BookAdmin(admin.ModelAdmin):
formfield_overrides = {
# Django enforces maximum field length of 14 onto 'title' field when user is editing in the change form
models.CharField: {'widget': TextInput(attrs={'size':'30'})},
}

admin.site.register(Book,BookAdmin)

编辑:在我提交错误后的 48 小时内,了不起的 Django 社区验证了错误并发布了补丁。经测试,2013年3月发布的Django 1.5版本修复了该bug。

https://code.djangoproject.com/ticket/19423#ticket

关于django formfield_overrides 与 TextField 中的 max_length 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12484413/

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