【发布时间】:2017-12-21 15:00:42
【问题描述】:
有一个 Django 模型 Item 和一个 AbstarctUser itemOwner。创建itemOwner 后,我需要创建其对应的item。 Item和ItemOwner的视图和模型如下图:
class ItemOwner(AbstractUser):
owner_name = models.CharField(max_length=64, null=True, blank=True)
item = models.ForeignKey(Item, related_name='owner',null=True)
class ItemOwnerViewSet(viewsets.ModelViewSet):
queryset = ItemOwner.objects.all()
serializer_class = ItemOwnerSerializer
class Item(models.Model):
name = models.CharField(max_length=64, verbose_name='name')
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer_class = ItemSerializer
Item 需要使用作为创建ItemOwner 的参数传递的值来创建。我知道可以使用modelname.save("parameters") 创建模型。但是这里的参数是从请求中访问的,我不知道应该从哪里使用 ViewSet 获取请求实例。我正在寻找的是一个只有在创建ItemOwner 时才会调用的方法,并且这个方法应该有一个request 实例来检索参数,以便我可以用它创建Item 模型。我该怎么做?
【问题讨论】:
-
这是
ItemOwnerViewSet查询集中的错字吗?为什么要在 ItemOwner 创建后访问请求?我猜 Item 只有一个字段,即 `name,如果我错了,请纠正我 owner_name 等于 Item.name 对吗?所以你可以为 ItemOwner 创建一个 post_signal 并创建Item? -
owner_name 不是项目名称。两者都是不同的。我是 django 的新手,不知道 post_signal 和 all 是如何工作的。请给我看代码
-
错字已清除。
标签: django django-models django-views django-rest-framework