django - 从 url 获取参数到表单的隐藏参数中
问题描述
我有一个 CreateView,我想在其中为产品创建新价格。产品详细信息页面有一个按钮来更改价格,这会导致一个新页面...\partprice\X
,例如 X 是产品的 id。一个产品可以有多个价格,这就是我使用CreateView
. part_id
是从 URL中获取的唯一方法(如这里)吗?
在 forms.py 中:
class PPriceFormset(ModelForm):
required_css_class = "required"
class Meta:
model = PPrice
fields = ("price", "customer", "date", "part")
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.helper.layout = Layout(Row(Column('price'),
Column('customer')),
Submit('submit', 'Save price', css_class='btn-primary'),
Field("date", type="hidden"),
Field("part", type="hidden"))
我想将X
上面的内容添加到隐藏字段“部分”中。在视图中我已经有了它:
class PPrice(CreateView):
model = PPrice
template_name ="gap/pprice_update.html"
form_class = PPriceFormset
success_url = reverse_lazy('part-list')
def get_form_kwargs(self, *args, **kwargs):
kwargs = super(PPriceCreateView, self).get_form_kwargs(*args, **kwargs)
kwargs['part_id'] = self.kwargs.get("part_pk")
return kwargs
解决方案
解决方案非常简单,该类需要一个初始值,可以通过get_initial
.
class PPriceCreateView(CreateView):
model = PPrice
template_name ="gap/pprice_update.html"
form_class = PPriceFormset
success_url = reverse_lazy('part-list')
def get_initial(self):
return {"part": self.kwargs["part_pk"]}
推荐阅读
- mysql - MySQL 特定时间的日期时间值不正确
- reactjs - Gatsby 代理到具有相同前缀的多个后端
- python - Applescript 无法获取 Python 调用的返回
- php - 上传时,Laravel 文件名未正确保存在数据库中
- reactjs - 无法在反应中显示获取的 API 数据
- python - sqlalchemy .commit() 非常慢
- airflow - 等待 Apache Airflow 中上次运行的所有下游任务
- c# - 使用 Linux 操作系统的 Azure Web 部署导致未经授权的令牌错误
- sql-server - 差距和岛屿
- file - Blazor 服务器生成文件并将其下载到用户客户端