Могу ли я изменить виджет / поле для дальнейшей фильтрации в Django / Python? - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть форма с полем в моих моделях, которое называется employee_number , которое связано с другой моделью, которая называется Продавец , которая содержит все данные со всеми именами сотрудников, номерами, отдел и т. д. В настоящее время он работает, разрешая отправку формы только в том случае, если введенный номер сотрудника является продавцом. То, что я пытаюсь сделать, это также отфильтровать его так, чтобы только сотрудники, которые входят в состав групп «ММ» и «ОМ» и чей статус сотрудника «А», были единственными, кто может отправить.

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')

models.py

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

alldata / models.py

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)
...