![](/img/trans.png)
[英]Validate Sign Up User data in serializers - Django Rest Framework
[英]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.