亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何處理 django 嵌套模型?

我如何處理 django 嵌套模型?

泛舟湖上清波郎朗 2022-09-13 19:54:00
我在Django中有一個用戶,帖子和標簽模型。標記模型與本主題無關。我可以將所有數據使用嵌套對象獲取到前端。另一方面,當我想創建一個新帖子時,我將帖子數據發送到django,在django視圖中,我正在嘗試更新數據,將登錄用戶與“帖子”相關聯,但當我這樣做時,它會給我;  {'owner': {'username': [ErrorDetail(string='A user with that username already exists.', code='unique')]}}錯誤。我該如何解決這個錯誤?models.py;class Post(models.Model):  # Post specs  title = models.CharField(max_length=100, null=False)  place = models.CharField(max_length=100, null=False)  notes = models.CharField(max_length=10000, null=False)  tags = models.ManyToManyField(Tag)  start_date = models.DateField(null=True)  end_date = models.DateField(null=True)  created_at = models.DateField(auto_now=True)  owner = models.ForeignKey(User , null = True, on_delete=models.SET_NULL) serializers.py;class PostSerializer(serializers.ModelSerializer):  tags = serializers.SlugRelatedField(        many=True,        queryset=Tag.objects.all(),        slug_field='name'     )  owner = UserSerializer()  class Meta:    model = Post    fields = ('title','place','notes','start_date','end_date','created_at','id','owner','tags')順便說一句,如果我更改 serializer.py,如所有者= 用戶序列化程序,它只給出主鍵值。在前端,我不能用整數做任何事情,我不想為用戶模型進行另一個api調用。最后查看帖子功能;  def post(self, request, format =None):    """    Creates a post    """    post = request.data                          ## copy dictionary to a variable    authenticatedUserDataAsDict =  request.user.__class__.objects.filter(pk=request.user.id).values().first()    post.update( {'owner': authenticatedUserDataAsDict} )        ## attach authenticated user to post end    serializer = PostSerializer(data = post)      ## serialize the dict    if serializer.is_valid():      serializer.save()                           ## if data valid save it.      return Response(serializer.data, status = status.HTTP_201_CREATED)    print("not valid->",serializer.errors)    return Response(serializer.errors, status = status.HTTP_400_BAD_REQUEST) # if it's not raise http 400
查看完整描述

1 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

解決

再次嗨,似乎 rest框架不知道我們的請求(創建或變得明智),因為我們正在處理嵌套的序列化程序。所以我在媒體上找到了這篇文章,它幫助我解決了我的問題。


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 61 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號