2011-04-04 23 views
1

私はDjango 1.2.3を使用しています。カテゴリとサブカテゴリを表す表があります。サブカテゴリでは、親テーブルとしての親の主キーのみを参照します。それは次のようになります。django - order_with_respect_to再帰的外部キー

class Category(models.Model): 
    def __unicode__(self): 
     return self.name 
    class Meta: 
     db_tablespace = 'Category' 
     verbose_name = 'Category' 
     verbose_name_plural = 'Categories' 
     ordering = ['display_weight', 'name'] 
     order_with_respect_to = 'parent' 
    name = models.CharField('Category Name', max_length=32) 
    parent = models.ForeignKey('self', blank=True, null=True) 
    display_weight = models.IntegerField('Display Weight', default=50) 

私はこのデータベースを同期/検証しようとすると、私は次のエラーを取得:

AttributeError: 'str' object has no attribute 'get_category_order'

をそれは私がに関して発注させませんようです再帰的な "外部キー"。誰もがこれを説明することができます。これを回避する方法はありますか?カテゴリとサブカテゴリにはいくつかのレベルがありますが、テーブルに定義されている循環参照はありません。

+0

それは奇妙です、私は南とそれを試して、それはかなりうまく動作します。 DjangoプロジェクトでSouthを使用していますか? –

答えて

2

このchangesetは、あなたの問題が使用しているdjangoのバージョンで修正されていることを示しています。これは、changesetのバックポートです。

問題は、これらのチケットにここで議論されています

http://code.djangoproject.com/ticket/2740

http://code.djangoproject.com/ticket/13241

あなたがDjangoはパッチが当てられたコードを持っているかどうかを確認することをお勧めします。

+0

ありがとうkriegar、このチケットは私のものとほぼ同じように定義されたオブジェクトです。これはまっすぐ前方のバグのようです。私はbase.pyのdiffをダウンロードし、ubuntuの.debパッケージのファイルへのパッチとして適用しましたが、私はまだ同じエラーメッセージを受け取っているようです。 –