小编try*_*ode的帖子

如何在 Django 中向自定义管理表单添加不可编辑的字段

我正在尝试向editable=False自定义管理表单添加一个字段,但出现错误:

django.core.exceptions.FieldError: 'help_num' cannot be specified for 
Investigation model form as it is a non-editable field
Run Code Online (Sandbox Code Playgroud)

这是真的,在我的模型中,我将其设置为:

模型.py

help_num = models.CharField(max_length=17, unique=True, default=increment_helpdesk_number, editable=False)
Run Code Online (Sandbox Code Playgroud)

表格.py

class HelpDeskModelForm(forms.ModelForm):

    class Meta:
      model = HelpDesk
      fields = [
          "help_num",
          "help_types",
           ...
          "help_summary"
          ]
Run Code Online (Sandbox Code Playgroud)

管理文件

class HelpDeskModelAdmin(admin.ModelAdmin):
    readonly_fields=('help_num',)
    form = HelpDeskModelForm
Run Code Online (Sandbox Code Playgroud)

我添加readonly到 admin.py,但仍然收到错误。我究竟做错了什么?

python django django-models django-forms django-views

9
推荐指数
1
解决办法
1万
查看次数

如何在 Django 中创建自定义 AutoField primary_key 条目

我正在尝试在我的 helpdesk/models.py 中创建一个自定义的 primary_key,我将用它来跟踪我们的服务台票证。我正在为我们的办公室编写一个小型滴答系统。

也许有更好的方法?现在我有:

id = models.AutoField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)

这在数据库中增加为;1、2、3、4....50...

我想接受这个 id 分配,然后在一个函数中使用它,将它与一些附加信息(如日期和名称“HELPDESK”)结合起来。

我使用的代码如下:

id = models.AutoField(primary_key=True)

def build_id(self, id):
    join_dates = str(datetime.now().strftime('%Y%m%d'))
    return (('HELPDESK-' + join_dates) + '-' + str(id))

ticket_id = models.CharField(max_length=15, default=(build_id(None, id)))
Run Code Online (Sandbox Code Playgroud)

这个想法是数据库中的条目将是:

HELPDESK-20170813-1
HELPDESK-20170813-2
HELPDESK-20170814-3
...
HELPDESK-20170901-4
...
HELPDESK-20180101-50
...
Run Code Online (Sandbox Code Playgroud)

然后我想使用它作为 ForeignKey 将服务台票证链接到数据库中的其他一些模型。

现在回来的是:

HELPDESK-20170813-<django.db.models.fields.AutoField>
Run Code Online (Sandbox Code Playgroud)

这篇文章有效 -自定义自动增量字段 Django Curious 如果有更好的方法。如果没有,这就足够了。

python django django-models

5
推荐指数
1
解决办法
1820
查看次数