我想用Django REST发布一个“记录”。我希望Django自动设置登录用户的用户id。在
在视图.py以下内容:
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer_class = ItemSerializer
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
在序列化程序.py以下内容:
^{pr2}$在模型.py以下内容:
class Item(models.Model):
created = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey('appserver.MyUser', related_name='appserver')
desc = models.CharField(max_length=100, blank=True, default='')
我正在使用django rest authemail 0.1.4中的EmailAbstractUser:
在视图.py以下内容:
class MyUser(EmailAbstractUser):
date_of_birth = models.DateField('Date of birth', null=True, blank=True)
objects = EmailUserManager()
感谢任何帮助。在
您可以覆盖ItemViewSet中的perform_create方法,如下所示:
如果要将此属性设置为请求用户,则仅在创建时设置。 但是,如果您想在更新时重新设置所有者,那么也必须覆盖perform_update方法(以相同的方式)。在
好吧,我自己解决了这个问题:
在的ItemSerializer中序列化程序.py公司名称:
在项目中模型.py在
^{pr2}$在ItemViewSet中视图.py公司名称:
相关问题 更多 >
编程相关推荐