能否修改小部件文本字段以进一步过滤Django/Python中的可用选项?

能否修改小部件文本字段以进一步过滤Django/Python中的可用选项?,python,django,Python,Django,我在模型中创建了一个名为员工编号的表单,该表单与一个名为销售人员的单独模型绑定,该模型保存所有员工姓名、编号、部门等的数据 目前,如果输入的员工编号在Sales中,则只允许提交表单。我试图做的是进一步过滤,这样只有属于团队“MM”和“OM”的员工,并且其员工_状态为“A”的员工才能提交表单 我看到有人建议有类似问题的人在“attrs”中添加更多约束,但我不确定它在这种情况下是否也会起作用,因为我对Python不太熟悉 forms.py class WarehouseForm(AppsModelF

我在模型中创建了一个名为员工编号的表单,该表单与一个名为销售人员的单独模型绑定,该模型保存所有员工姓名、编号、部门等的数据

目前,如果输入的员工编号在Sales中,则只允许提交表单。我试图做的是进一步过滤,这样只有属于团队“MM”和“OM”的员工,并且其员工_状态为“A”的员工才能提交表单

我看到有人建议有类似问题的人在“attrs”中添加更多约束,但我不确定它在这种情况下是否也会起作用,因为我对Python不太熟悉

forms.py

class WarehouseForm(AppsModelForm):
    class Meta:
        model = EmployeeWorkAreaLog
        widgets = {
            'employee_number': ForeignKeyRawIdWidget(EmployeeWorkAreaLog._meta.get_field('employee_number').remote_field, site, attrs={'id':'employee_number_field'}),
        }
        fields = ('employee_number', 'work_area', 'station_number')
class EmployeeWorkAreaLog(TimeStampedModel, SoftDeleteModel, models.Model):
    employee_name = models.CharField(max_length=25)
    employee_number = models.ForeignKey(Salesman, on_delete=models.SET_NULL, help_text="Employee #", null=True, blank=False)
    work_area = models.ForeignKey(WorkArea, on_delete=models.SET_NULL, null=True, blank=False)
    station_number = models.ForeignKey(StationNumber, on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return self.employee_number
class Salesman(models.Model):
    id = models.IntegerField(db_column='number', primary_key=True)
    team = models.CharField(max_length=2)
    employee_status = models.CharField(max_length=1, blank=True)
型号.py

class WarehouseForm(AppsModelForm):
    class Meta:
        model = EmployeeWorkAreaLog
        widgets = {
            'employee_number': ForeignKeyRawIdWidget(EmployeeWorkAreaLog._meta.get_field('employee_number').remote_field, site, attrs={'id':'employee_number_field'}),
        }
        fields = ('employee_number', 'work_area', 'station_number')
class EmployeeWorkAreaLog(TimeStampedModel, SoftDeleteModel, models.Model):
    employee_name = models.CharField(max_length=25)
    employee_number = models.ForeignKey(Salesman, on_delete=models.SET_NULL, help_text="Employee #", null=True, blank=False)
    work_area = models.ForeignKey(WorkArea, on_delete=models.SET_NULL, null=True, blank=False)
    station_number = models.ForeignKey(StationNumber, on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return self.employee_number
class Salesman(models.Model):
    id = models.IntegerField(db_column='number', primary_key=True)
    team = models.CharField(max_length=2)
    employee_status = models.CharField(max_length=1, blank=True)
alldata/models.py

class WarehouseForm(AppsModelForm):
    class Meta:
        model = EmployeeWorkAreaLog
        widgets = {
            'employee_number': ForeignKeyRawIdWidget(EmployeeWorkAreaLog._meta.get_field('employee_number').remote_field, site, attrs={'id':'employee_number_field'}),
        }
        fields = ('employee_number', 'work_area', 'station_number')
class EmployeeWorkAreaLog(TimeStampedModel, SoftDeleteModel, models.Model):
    employee_name = models.CharField(max_length=25)
    employee_number = models.ForeignKey(Salesman, on_delete=models.SET_NULL, help_text="Employee #", null=True, blank=False)
    work_area = models.ForeignKey(WorkArea, on_delete=models.SET_NULL, null=True, blank=False)
    station_number = models.ForeignKey(StationNumber, on_delete=models.SET_NULL, null=True)

    def __str__(self):
        return self.employee_number
class Salesman(models.Model):
    id = models.IntegerField(db_column='number', primary_key=True)
    team = models.CharField(max_length=2)
    employee_status = models.CharField(max_length=1, blank=True)