Как ограничить выбор полей в модели django, используя одно из предыдущих полей?

Следующее в моем models.py:

class SensorType(models.Model):
    hardware_type  = models.CharField(max_length=100)
    is_static = models.BooleanField(default=False)
    # Some other fields

class Sensor(models.Model):
    device_id = models.CharField(max_length=100, primary_key=True)
    sensor_type = models.ForeignKey(SensorType, on_delete=models.PROTECT)
    # Some other fields

class Asset(models.Model):
    name = models.CharField(max_length=100)
    sensor_type = models.ForeignKey(SensorType, on_delete=models.PROTECT) # I need to use this field to filter below
    sensor = models.ForeignKey(Sensor, on_delete=models.PROTECT, limit_choices_to={'sensor_type': WHAT DO I PUT HERE?},)
    # Some other fields

Мне нужно ограничить выбор в поле sensor в поле asset так, чтобы отображались только датчики с параметром sensor_type, установленным в поле непосредственно над .

Причина этого в том, что в конечном итоге будет много датчиков, и было бы очень полезно фильтровать их. Первоначально мне нужно, чтобы это работало только со страницы администратора, но со временем это будет расширено, когда я сделаю свои Create и Update Views.

Возможно ли это вообще? По сути, я пытаюсь получить доступ к атрибутам до того, как объект был создан.

После прочтения нескольких других вопросов, таких как этот, я также рассмотрел ModelChoiceField, но существует та же проблема, связанная с попыткой получить доступ к данным формы до того, как она была отправлена.

Я очень открыт для изменения структуры модели, если это то, что требуется.

Вернуться на верх