【问题标题】:django - order_with_respect_to recursive foreign keydjango - order_with_respect_to 递归外键
【发布时间】:2011-04-04 00:22:53
【问题描述】:

我正在使用 Django 1.2.3。我有一个代表类别和子类别的表格。对于子类别,它只是引用其自己表中的“父”主键作为其父项。它看起来像这样:

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' 对象没有 属性'get_category_order'

似乎它不会让我对递归的“外键”进行排序。谁能解释一下。有没有解决的办法?可能有多个级别的类别和子类别,但表中永远不会定义循环引用。

【问题讨论】:

  • 这很奇怪,我用 South 试过了,效果很好。你在你的 Django 项目中使用 South 吗?

标签: django recursion key


【解决方案1】:

changeset 表明您的问题已在您使用的 django 版本中得到修复。它是 changeset 的反向移植。

在这些票证中讨论了这个问题:

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

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

您可能想检查您的 django 是否有补丁代码。

【讨论】:

  • 感谢 kriegar,这张票的对象定义几乎与我的定义完全相同。这似乎是一个直接的错误。我下载了 base.py 的 diff 并将其作为补丁应用到 ubuntu 中的 .deb 包中的文件,但我似乎仍然收到相同的错误消息。
猜你喜欢
  • 2021-07-13
  • 2015-03-06
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 2015-11-17
  • 2015-03-25
相关资源
最近更新 更多