주요 문제는 데이터를 외래 키로 보내려면 POST 메서드를 사용해야 한다는 것입니다.
I have a model with a foreign key. I am trying to post data to this model using the Django Rest Framework. How do I post data to the foreign key?
<code>class Model1(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Model2(models.Model):
name = models.CharField(max_length=100)
model1 = models.ForeignKey('Model1', on_delete=models.CASCADE, related_name='model2')
def __str__(self):
return self.name
class Model2Serializer(serializers.ModelSerializer):
class Meta: # noqa: D106,D205,D400,E501 # pylint: disable=too-few-public-methods,missing-docstring,line-too-long,no-init # noqa: D105 # pylint: disable=R0903 # noqa: D102 # pylint: disable=R0901
model = Model2
fields = ['id', 'name', 'model1']
</code>
이 코드는 두 가지 모델을 정의합니다. Model1 Model2및 직렬 변환기 Model2.
Model1 라는 필드가 있습니다 name.
Model2 라는 필드가 있습니다 name, 외래 키 필드 model1. 외래 키는 Model1.
에 대한 직렬 변환기 Model2Serializer, 모델을 JSON 형식으로 변환할 때 포함되어야 하는 필드를 정의합니다. 이 경우 다음 필드가 포함됩니다. id, name, and 'model1'.
Save Foreign Key Using Django Rest Framework
In Django, you can use the save_foreign_key() function to save a foreign key in a model. This function takes two arguments: the model name and the name of the column in the model that stores the foreign key.
To save a foreign key in a model named "MyModel", you would use the following code:
save_foreign_key("MyModel", "id")
What is Foreign key
A foreign key is a column in a table that references a column in another table. When you insert data into the table, Django automatically creates the foreign key for you.