【发布时间】:2020-11-22 18:53:20
【问题描述】:
我一直在研究这个问题一段时间,无法深入了解我做错了什么。 我正在尝试使用 PrimaryKeyRelatedField 的 Django REST 框架在两个模型之间添加多对多关系,但无法保存该关系。
我下面的代码所做的是保存新创建的 first_model 项目,但它不保存关系(如果我查看关系表它仍然是空的)
任何关于我哪里出错的提示将不胜感激!
这是我拥有的代码的 sn-p: 以下是观点:
@api_view(['POST'])
def RiskCreate(request):
serializer = First_ModelSerializer(data = request.data)
if serializer.is_valid():
serializer.save()
else:
print("data is not valid")
return Response(serializer.data)
以下是模型:
class First_Model(models.Model):
Model_Title = models.CharField(max_length = 500, blank=True)
Model_Descr = models.CharField(max_length = 500, blank=True)
relationship = models.ManyToManyField(Second_Model)
class Second_Model(models.Model):
Title_two = models.CharField(max_length = 50, unique = True)
Descr_two = models.CharField(max_length = 50, unique = True)
这里是序列化器:
class First_ModelSerializer(serializers.ModelSerializer):
relationship = serializers.PrimaryKeyRelatedField(many = True, read_only=True)
class Meta:
model = Risks
fields = ('Model_Title', 'Model_Descr', 'relationship')
这是我将数据传递给视图的方式:
function addHazard(item){
var url = baseurl + 'api/Create/'
var ID = item.id
var Model_Title = document.getElementById('Model_Title').value
var Model_Descr = document.getElementById('Model_Descr').value
fetch (url, {
method:'POST',
headers:{
'Content-type':'application/json',
'X-CSRFToken': csrftoken
},
body:JSON.stringify({'Model_Title':Model_Title, 'Model_Descr':Model_Descr, 'relationship': [{'id':ID}]})
})
【问题讨论】:
标签: django django-rest-framework many-to-many