【发布时间】:2013-05-19 05:37:24
【问题描述】:
在我的应用中,我需要在商店中创建产品。所以我有一个模型店和一个模型产品。我可以在 DetailView ShopDetail 中查看有关我店铺的详细信息。现在我需要一个 CreateView 来创建产品,但 url 应该是/shops/shop-id/products/create/,所以我在商店内创建产品。我猜是这样的
class ProductCreate(SingleObjectMixin, CreateView):
model = Product
def get_object(self, queryset=None):
return Shop.objects.get(id = self.kwargs['shop_id'])
我在正确的轨道上吗? :-D
【问题讨论】:
-
大概你有来自
Product>Shop的FK 关系,所以你需要在后台在CreateView中设置该关系(通过从url 获取id 并手动分配关系),然后将该字段隐藏在新表单中,以便当用户创建新实例时,将保存关系。或者,您可以在用户发布他们的表单并对其进行验证时设置关系商店。 -
Hej 蒂米。我知道我可以在保存表单数据之前通过设置 form.instance.shop 在 form_valid 中处理这个问题,但我还必须设置我猜的上下文数据,所以我可以在模板中获取商店名称
标签: django django-models django-templates django-views django-class-based-views