小编yog*_*itm的帖子

如何在 Django ModelForm 中自动聚焦 Charfield

在我的 django 应用程序中,我想在页面加载时将焦点设置到第一个 CharField (任务)。

我的models.py

from django.db import models

class ListModel(models.Model):
    task = models.CharField(max_length=255)
    status = models.BooleanField(default=False)

    def __str__(self):
        return f"{self.task} : {str(self.status)}"
Run Code Online (Sandbox Code Playgroud)

forms.py

from django.forms import ModelForm
from .models import ListModel

class ListForm(ModelForm):
    class Meta:
        model = ListModel
        fields = ["task", "status"]
Run Code Online (Sandbox Code Playgroud)

我尝试在CharField (在 models.py 中)中添加以下小部件:

task = models.CharField(max_length=255, widget=models.TextInput(attrs={'autofocus': True})
Run Code Online (Sandbox Code Playgroud)

但它给出了一个 AttributeError:module 'django.db.models' has no attribute 'TextInput'

我还尝试将以下内容添加到ListForm 类(在 forms.py 中)

def __init__(self):
    self.fields['task'].widget.attrs.update(autofocus = 'autofocus')
Run Code Online (Sandbox Code Playgroud)

虽然我没有收到任何错误,但是当我加载页面时,焦点也没有设置到任务 CharField …

python django django-models django-forms modelform

2
推荐指数
1
解决办法
1862
查看次数

标签 统计

django ×1

django-forms ×1

django-models ×1

modelform ×1

python ×1