Python 将模型从视图传递到窗体';s的内部元类
我想将一个特定模型从我的视图传递到表单的内部元类: 视图: 表格:Python 将模型从视图传递到窗体';s的内部元类,python,django,Python,Django,我想将一个特定模型从我的视图传递到表单的内部元类: 视图: 表格: 这可能吗?这不起作用,因为加载文件时会创建表单及其字段。您可能可以将类定义移动到函数中并动态定义它 @login_required def product_create_view(request): class CreateProductForm(ModelForm): class Meta: model = model fields = (
这可能吗?这不起作用,因为加载文件时会创建表单及其字段。您可能可以将类定义移动到函数中并动态定义它
@login_required
def product_create_view(request):
class CreateProductForm(ModelForm):
class Meta:
model = model
fields = (
'title',
'description',
'price',
'stock',
'category'
)
if request.method == 'POST':
create_product_form = CreateProductForm(request.POST, request=request)
if create_product_form.is_valid():
create_product_form.save()
else:
create_product_form = CreateProductForm(request=request)
return render(request, 'products/product_create.html', {'form': create_product_form})
不过我还没试过 这没有道理。你为什么要这样做?@DanielRoseman看到我的另一个问题了:你为什么不使用一个
modelform\u工厂(model,exclude=('id',)
将为模型类model
创建一个模型表单类,仅排除id字段。@dirkgroten如何通过modelform\u工厂验证字段?像def clean_category(…)
?您没有说您有任何自定义验证。。。
class CreateProductForm(ModelForm):
class Meta:
model = CreateProductForm.model
fields = (
'title',
'description',
'price',
'stock',
'category'
)
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
self.model = kwargs.pop('model')
super().__init__(*args, **kwargs)
@login_required
def product_create_view(request):
class CreateProductForm(ModelForm):
class Meta:
model = model
fields = (
'title',
'description',
'price',
'stock',
'category'
)
if request.method == 'POST':
create_product_form = CreateProductForm(request.POST, request=request)
if create_product_form.is_valid():
create_product_form.save()
else:
create_product_form = CreateProductForm(request=request)
return render(request, 'products/product_create.html', {'form': create_product_form})