簡體   English   中英

Django REST框架:serializers_user_data.owner_id處的IntegrityError不能為NULL

[英]Django REST framework : IntegrityError at serializers_user_data.owner_id may not be NULL

我正在遵循django REST框架的Authentication&Permissions教程。 根據教程,我定義了模型和視圖,但出現以下錯誤:

IntegrityError at serializers_user_data.owner_id may not be NULL

這是我的代碼:

models.py

class User_Data(models.Model):
    owner = models.ForeignKey('auth.User', related_name='user_datas')    
    user_name = models.CharField(max_length = 100, blank = True)
    user_email = models.CharField(max_length = 100, blank = True)
    user_city = models.CharField(max_length = 50, blank = True)

    class Meta:
        ordering = ['user_name']

    def __unicode__(self):
        return self.user_name

view.py

class User_Mixing():
    queryset = User_Data.objects.all()
    serializer_class = User_Data_Serializers
    permission_classes = (IsOwnerOrReadOnly,)

    def pre_save(self, obj):
        obj.owner = self.request.user
        print obj.owner

class User_list(User_Mixing, generics.ListCreateAPIView):
    pass

class User_detail(User_Mixing, generics.RetrieveUpdateDestroyAPIView):
    pass

還可以通過外鍵中的related_names幫助我。 它用於什么目的?

我使用perform_create方法而不是pre_save

def perform_create(self, serializer):
    serializer.save(owner=self.request.user)

在代碼中設置ipdb

    def pre_save(self, obj):
    import ipdb; ipdb.set_trace()
    obj.owner = self.request.user
    print obj.owner

並檢查request.user屬性以了解錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM