art*_*t06 2 django django-templates
我有如下所示的模型。
class ProductGroup(models.Model):
name = models.CharField(max_length=30,null=False, blank=False)
category=TreeForeignKey('category.Category', null=False,blank=False)
Run Code Online (Sandbox Code Playgroud)
我有一个 CreateView 作为
class CreateProductGroup(CreateView):
model = ProductGroup
fields = ['name', 'category']
Run Code Online (Sandbox Code Playgroud)
我的这个视图的 url 模式是
url(r'^create-group/(?P<pk>[0-9]+)/$', views.CreateProductGroup.as_view(), name='create_group'),
Run Code Online (Sandbox Code Playgroud)
我通过 url 从 category_detail.html 页面传递 category_id 作为
<a href="{%url 'create_group' object.id %}">Create product group</a>
Run Code Online (Sandbox Code Playgroud)
这是我的表格
<form method="post">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">
Submit
</button>
{% endbuttons %}
</form>
Run Code Online (Sandbox Code Playgroud)
现在,如何在表单中选择的 url 中显示与 id 对应的类别?
您可以定义get_initial()返回字典以预填充表单的方法;在该方法中,您可以从self.kwargs.
def get_initial(self):
return {'category': self.kwargs['pk']}
Run Code Online (Sandbox Code Playgroud)
或者,如果始终在 URL 中提供类别 ID,您可能根本不希望在表单上显示类别字段;在这种情况下,请将其从字段列表中排除,并覆盖该form_valid方法以在保存时对其进行设置。
def form_valid(self, form):
form.instance.category_id = self.kwargs['pk']
return super(CreateProductGroup, self).form_valid(form)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |