【发布时间】:2013-11-20 23:26:49
【问题描述】:
我遇到了一个小问题,我认为这很常见。 这是描述的非常笼统的问题:
class Ownable(models.Model):
user = models.ForeignKey(django.contrib.auth.models.User)
class Meta:
abstract = True
class Bowl(Ownable):
pass
class Pea(Ownable):
bowl = models.ForeignKey(bowl)
关系是:User [1:n] Bowl,
User [1:n] Pea
Bowl [1:n] Pea
现在,当我想创建一个新的 Pea 时,我还需要将其分配给 Bowl,如下所示:
def create_new_pea(request):
PeaFrom = inlineformset_factory(django.contrib.auth.models.User, Pea)
return render(request, 'app/pea/create.html', {'formset': PeaFrom()})
在这个过程中,我如何能够将QuerySet 传递给bowl 字段,因为用户只能将豆子放入自己的碗中。
我很乐意提出建议。我尝试为 formset-factory 创建一个自定义表单,但我需要 request 实例来了解当前用户。
【问题讨论】:
-
我现在知道应该使用
formfield_callback完成,但我无法正确获取回调函数。 -
实际上,我认为
formfield_callback在实例化过程中发生得太早,无法访问用户。唔。也许你可以用一个闭包作为回调来做到这一点。
标签: python django django-forms django-queryset inline-formset