【问题标题】:django formset issuedjango表单集问题
【发布时间】:2012-01-23 18:14:05
【问题描述】:

我有 2 个模型

class A(models.Model):
    id=models.AutoField(primary_key=True)
    name=models.CharField(max_length=200)


class B(models.Model):
   id=models.AutoField(primary_key=True)
   user=models.ForeignKey(A)
   name=models.CharField(max_length=200)


#forms.py
class BForm(ModelForm):
    class Meta:
        model=B
        fields=('name','user')
    def __init__(self,user_name,*args,**kwargs):
       super(BForm,self).__init__(*args,**kwargs)
       if user_name:
          self.field['user']=forms.ModelChoiceField(queryset=A.objects.filter(name__icontains=user_name)


#views.py

def myview(request,user_name):
    formset=formset_factory(BForm(user_name=user_name),extra=10)

我收到以下错误

“BForm”对象没有属性“name”

实际上我只希望在我的表单集中显示 A 类的选择性值

【问题讨论】:

    标签: django django-forms formset


    【解决方案1】:

    这里有几个问题:

    首先,BForm 类中的 __init__ 方法看起来是错误的。 user_name 是关键字参数,但在下面你有条件if user,没有在任何地方定义用户。

    其次,在定义表单集时,您不能使用user_name 参数初始化表单。看起来您正在尝试与堆栈溢出问题 Passing Custom Form Parameters to Formset 中的相同。

    第三,请提供整个回溯。只包含一行traceback,

    'BForm' object has no attribute 'name'

    使追查问题所在变得更加困难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多