【问题标题】:How to change button from drop down to manual input python django如何将按钮从下拉菜单更改为手动输入 python django
【发布时间】:2021-04-12 01:24:24
【问题描述】:

我正在制作一个考勤网络应用程序,在我将数据库的关系建立为一对多之后,按钮从手动输入变为下拉类型,如下所示:

这是我的 html 代码:

<form method="post">
    {% csrf_token %}
    <div class="input-group mb-2">
        <div class="input-group-prepend">
            <label for="name">Enter Your Full Name:</label>
            {{form.name}}
            <button type="submit" name="checkName" value="checkName" class="btn btn-outline-success">Submit</button>
        </div>
    </div>
</form>

models.py:

class employeeName(models.Model):
    employee = models.CharField(max_length=200)

    def __str__(self):
        return self.employee
    
class Name(models.Model):
    name = models.ForeignKey(employeeName, null=True,on_delete=models.CASCADE)
    timeIn = models.TimeField()
    timeOut = models.TimeField(default=datetime.now())
    date = models.DateField(auto_now=True)

    def __str__(self):
        return str(self.name) 

forms.py

class CreateNewList(forms.ModelForm):
    #name = forms.CharField(label="Name", max_length=200)
    class Meta:
        model = Name
        fields = ['name']

【问题讨论】:

  • 您能否将您的formModelForm 包括在内
  • @PacketLoss 我已经添加了form.py
  • 在您的表单类中尝试self.fields['name'].widget = TextInput()。您需要导入 TextInput() django.forms.widgets
  • 它说 self 没有定义

标签: python html django button django-models


【解决方案1】:

您可以在ModelForm 中手动更改字段的输入类型。

这可能会导致问题,因为您现在需要检查在文本字段中输入的员工是否存在。

可能值得研究一种更好的方法来处理此问题,例如限制登录用户可以看到的员工的访问权限。


class CreateNewList(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CreateNewList, self).__init__(*args, **kwargs)

        self.fields['name'].widget = TextInput()
    
    class Meta:
        model = Name
        fields = ['name']

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 2017-08-26
    • 2014-05-27
    • 2015-08-06
    • 2018-06-05
    • 2020-03-29
    • 2020-07-28
    • 1970-01-01
    • 2021-10-23
    相关资源
    最近更新 更多