Stock model has a OneToMany relationship with Data model. I am using the to_field to link them via model_number field.
<code>class Stock(models.Model):
model_number = models.CharField(max_length=100, unique=True, null=True)
model = models.CharField(max_length=100)
brand = models.CharField(max_length=100)
msrp = models.IntegerField(default=0)
def __str__(self):
return f"{self.brand} - {self.model} - {self.model_number}"
class Data(models.Model):
model_number = models.ForeignKey(Stock, to_field='model_number', on_delete=models.CASCADE)
price = models.FloatField()
date = models.DateField()
def __str__(self):
return self.model_number
</code>
<code>class Stock(models.Model):
model_number = models.CharField(max_length=100, unique=True, null=True)
model = models.CharField(max_length=100)
brand = models.CharField(max_length=100)
msrp = models.IntegerField(default=0)
def __str__(self):
return f"{self.brand} - {self.model} - {self.model_number}"
class Data(models.Model):
model_number = models.ForeignKey(Stock, to_field='model_number', on_delete=models.CASCADE)
price = models.FloatField()
date = models.DateField()
def __str__(self):
return self.model_number
</code>
class Stock(models.Model):
model_number = models.CharField(max_length=100, unique=True, null=True)
model = models.CharField(max_length=100)
brand = models.CharField(max_length=100)
msrp = models.IntegerField(default=0)
def __str__(self):
return f"{self.brand} - {self.model} - {self.model_number}"
class Data(models.Model):
model_number = models.ForeignKey(Stock, to_field='model_number', on_delete=models.CASCADE)
price = models.FloatField()
date = models.DateField()
def __str__(self):
return self.model_number
I have my serializers to show each model number and then the nested relationship of data.
<code>class DataSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = '__all__'
class StockSerializer(serializers.ModelSerializer):
data = DataSerializer(many=True, read_only=True)
class Meta:
model = Stock
fields = ['brand', 'model', 'model_number', 'msrp', 'data']
</code>
<code>class DataSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = '__all__'
class StockSerializer(serializers.ModelSerializer):
data = DataSerializer(many=True, read_only=True)
class Meta:
model = Stock
fields = ['brand', 'model', 'model_number', 'msrp', 'data']
</code>
class DataSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = '__all__'
class StockSerializer(serializers.ModelSerializer):
data = DataSerializer(many=True, read_only=True)
class Meta:
model = Stock
fields = ['brand', 'model', 'model_number', 'msrp', 'data']
However the price does not return at all in my API view. Not sure where I am going wrong on this.