[英]Django REST framework : IntegrityError at serializers_user_data.owner_id may not be NULL
I am following django REST framework tutorial of Authentication & Permissions. 我正在遵循django REST框架的Authentication&Permissions教程。 As per tutorial i defined models and views buy i am getting the error below:
根据教程,我定义了模型和视图,但出现以下错误:
IntegrityError at serializers_user_data.owner_id may not be NULL
Here is my code: 这是我的代码:
models.py 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 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
Also help me with related_names in foreign key. 还可以通过外键中的related_names帮助我。 For what purpose it is used??
它用于什么目的?
I used perform_create method instead of pre_save 我使用perform_create方法而不是pre_save
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
Set ipdb in your code 在代码中设置ipdb
def pre_save(self, obj):
import ipdb; ipdb.set_trace()
obj.owner = self.request.user
print obj.owner
And check the request.user attribute to understand the error. 并检查request.user属性以了解错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.