#django #django-models #django-rest-framework #django-serializer
#django #django-модели #django-rest-framework #django-сериализатор
Вопрос:
я хочу получить детали модели с соответствующей другой моделью
мой models.py
class Device(models.Model):
DeviceName = models.CharField(max_length=50, null=True, default=None, blank=True)
Camera = models.ForeignKey(Camera, on_delete=models.CASCADE, db_column='CameraId')
class Meta:
db_table = "Device"
class Camera(models.Model):
CameraId = models.AutoField(primary_key=True, db_column='CameraId')
CameraName = models.CharField(max_length=50)
class Meta:
db_table = "Camera"
мне нужны данные о моей камере
это сведения о камере, которые не сохранены во внешнем ключе устройства (означает сведения о камере, которые не использовали внешний ключ для устройства)
Ответ №1:
Попробуйте использовать device__isnull=True
filter (ссылка: Django isnull
lookup)
camera_without_devices = Camera.objects.filter(device__isnull=True)
Ответ №2:
Вы можете проверить, есть ли Camera
объекты, для которых соответствующая модель (здесь device
) является None
/ NULL
:
Camera.objects.filter(device=None)
Это происходит потому, что Django создаст LEFT OUTER JOIN
, поэтому в случае отсутствия устройства он добавит одну строку с NULL
значением as для столбцов, связанных с Device
.
Комментарии:
1. Спасибо.. Этот метод также работает. 🙂 .. я не могу добавить галочку для ответа 2 .. извините.. Этот ответ также работает 🙂