【发布时间】:2013-10-21 01:47:12
【问题描述】:
所以,我有一个 Django 通用视图:
class Foobaz(models.Model):
name = models.CharField(max_length=140)
organisation = models.ForeignKey(Organisation)
class FoobazForm(forms.ModelForm):
class Meta:
model = Foobaz
fields = ('name')
class FoobazCreate(CreateView):
form_class = FoobazForm
@login_required
def dispatch(self, *args, **kwargs):
return super(FoobazCreate, self).dispatch(*args, **kwargs)
我要做的是从 URL 中获取组织 ID:
/organisation/1/foobaz/create/
并将其添加回创建的对象。我意识到我可以在 CreateView.form_valid() 中执行此操作,但据我了解,这完全没有经过验证。
我已尝试将其添加到 get_form_kwargs() 但这并不指望组织 kwarg,因为它不在包含的字段中。
理想情况下,我想做的是将它添加到表单的实例中以与其余部分一起验证它 - 确保它是一个有效的组织,并且相关用户具有添加新 foobaz 的正确权限给它。
如果这是最好的方法,我很乐意发表自己的看法,但我可能只是错过了一个技巧。
谢谢!
【问题讨论】:
标签: django django-forms django-generic-views