Как ограничить выбор полей в модели 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, но существует та же проблема, связанная с попыткой получить доступ к данным формы до того, как она была отправлена.
Я очень открыт для изменения структуры модели, если это то, что требуется.