2016-12-01 123 views
0

我正在構建允許發佈到django後端的端點。交易模型具有多對多關係頂部賬簿管理人,以及我的串行器在默認情況下已經低於PrimaryKeyRelatedField:使用PrimaryKeyRelatedField保存django-rest

Models.py

class Deal(models.Model): 
    book_runner = models.ManyToManyField(BookRunner, blank=True, null=True, related_name="deal_book_runner") 

Serializers.py

class DealSerializer(serializers.ModelSerializer): 
    book_runner = PrimaryKeyRelatedField(allow_null=True, many=True, queryset=BookRunner.objects.all(), required=False) 
    equity = Equity.objects.create(**equity_data) 

def create(self, validated_data): 
    deal = Deal.objects.create(**validated_data) 
    return deal 

Views.py

class DealAdminViewSet(viewsets.ModelViewSet): 
    queryset = Deal.objects.all() 
    serializer_class = CreateDealSerializer 

    def create(self, request, format=None): 
     book_runner = request.data.get('book_runner', None) #array 

打印驗證前的數據(validated_data)程序中斷:

{'book_runner': u'2'} 

現在,當我發佈與主鍵= 2賬簿管理人的交易,我得到一個錯誤:

File "/usr/lib/python2.7/json/encoder.py", line 184, in default 
    raise TypeError(repr(o) + " is not JSON serializable") 
TypeError: <property object at 0x7f1559578158> is not JSON serializable 

我希望同時使用陣列和未來的主鍵的數字。謝謝你的幫助!

回答

0

這是關於您發送給休息框架的JSON的錯誤。它沒有成功反序列化它。 檢查JSON格式是否有效。