1

models.pyファイルの下部にいくつかのModelFormsがあります。一部のモデルフォームは機能しています(つまり、テンプレートに正しく表示されます)。

これらは機能するいくつかの2つです:

class Account_Balance_Form(ModelForm):
    class Meta:
        model = Account_Balance
        fields = ('date','balance')

class Asset_Form(ModelForm):
    class Meta:
        model = Asset
        exclude = ('account','id')

他の人はしかし動作しません。同じビューを使用する(異なるModelFormを渡す)場合でも、同じテンプレートに。これらは機能しない2つです:

class Allocation_Form(ModelForm):
    class Meta:
        model = Allocation

class Deduction_Form(ModelForm):
    class Meta:
        model = Deduction

何が間違っているのかよくわかりません...syncdbを実行しようとしましたが、役に立ちませんでした。また、フォームオブジェクトが正常に作成されているようです。

allocation_form <forecast.models.Allocation_Form object at 0x90f15ac>

表示されていないだけです...何か考えはありますか?

===================

参考までに、機能するサンプルビュー:

def view_allocation(request):
    form = Asset_Form()
    return render_to_response('alloc.html',
                                {'form': form})

動作しません:

def view_allocation(request):
    form = Allocation_Form()
    return render_to_response('alloc.html',
                                {'form': form})

サンプルテンプレート:

<html>
<body>
{{ form.as_p }}
</body>
</html>

要求に応じて:

class Allocation(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=40)
    account = models.ForeignKey(Account)
    amount = models.DecimalField(max_digits=20,decimal_places=2)
    percent = models.DecimalField(max_digits=10,decimal_places=10)
    allocation_group = models.IntegerField(max_length=11)
    def __unicode__(self):
        return self.name


class Deduction(models.Model):
    iei = models.ForeignKey(Inc_Exp_Item, null=True, blank=True)
    name = models.CharField(max_length=40)
    amount = models.DecimalField(max_digits=20,decimal_places=2)
    percent = models.DecimalField(max_digits=10,decimal_places=10)
    before_tax = models.BooleanField()
    credit_debit = models.CharField(max_length=6, 
                                    choices=(('Debit','Income'),
                                             ('Credit','Expense'),))
    tax_category = models.ForeignKey(Tax_Category)
    account = models.ForeignKey(Account)
    active = models.BooleanField()
    deduct_taxes = models.BooleanField()
4

1 に答える 1

2

皆さん、特に助けてくれてありがとう。エール。シェルでフォームを印刷しようとしましたが、タイプエラーが発生しました。

オブジェクトは作成されていましたが、印刷できませんでした(または.as_p())。

問題は、割り当てと控除が次の外部キーを持っていたアカウントモデルにありました。

class Account(models.Model):
    user = models.ForeignKey(User)
    account_type = models.ForeignKey(Account_Type)
    def __unicode__(self):
        return self.account_type

Unicodeメソッドを削除しましたが、機能しました。unicodeは別のモデルのunicodeメソッドを返さないと思います。

于 2012-05-17T14:38:34.037 に答える