【发布时间】:2022-01-21 02:22:06
【问题描述】:
我正在尝试创建一个 API 视图,用户在其中输入控制器的名称并接收它可以作为 JSON 返回的测量值。
models.py
class Microcontrollers(models.Model):
name = models.CharField(max_length=25)
serial_number = models.CharField(max_length=20, blank=True, null=True)
type = models.CharField(max_length=15, blank=True, null=True)
software = models.CharField(max_length=20, blank=True, null=True)
version = models.CharField(max_length=5, blank=True, null=True)
date_installed = models.DateField(blank=True, null=True)
date_battery_last_replaced = models.DateField(blank=True, null=True)
source = models.CharField(max_length=10, blank=True, null=True)
friendly_name = models.CharField(max_length=45, blank=True, null=True)
class MicrocontrollersMeasurements(models.Model):
microcontroller = models.ForeignKey(Microcontrollers, models.DO_NOTHING, blank=True, null=True)
measurement = models.ForeignKey(Measurements, models.DO_NOTHING, blank=True, null=True)
class Measurements(models.Model):
code = models.CharField(max_length=25)
measurement = models.CharField(max_length=25)
unit = models.CharField(max_length=25)
type = models.CharField(max_length=25)
序列化器.py
class SourceStationsSerializer(serializers.ModelSerializer):
def create(self, validated_data):
pass
def update(self, instance, validated_data):
pass
class Meta:
model = Microcontrollers
fields = ['id', 'name']
class StationMeasurementsSerializer(serializers.ModelSerializer):
def create(self, validated_data):
pass
def update(self, instance, validated_data):
pass
class Meta:
model = MicrocontrollersMeasurements
fields = '__all__'
class MeasurementsSerializer(serializers.ModelSerializer):
station = SourceStationsSerializer()
stationMeasurements = StationMeasurementsSerializer()
def create(self, validated_data):
pass
def update(self, instance, validated_data):
pass
class Meta:
model = Measurements
fields = '__all__'
数据库为每个控制器和测量创建 ID。我的问题是如何加入这 3 个表,以便找到属于每个控制器的测量值。
【问题讨论】:
标签: django django-models django-rest-framework django-views django-serializer