django - 按外键排序时的分页错误

时间:2014-06-03 22:46:09

标签: django

当我按外键字段排序时出现分页错误 - 它对第一页进行排序就好了,但当我尝试转到任何其他页面时,会显示错误:'无效的列名称位置代码&# 39 ;.据我所知,它试图通过一个不存在的字段对第二页进行排序;我想知道如何解决它。

models.py

class Location(models.Model):
    locationid = models.AutoField(primary_key=True,db_column=u'LocationID')
    name = models.CharField(max_length=50, db_column=u'Name')
    def location_code(self):
        return self.locationdetail.locationcode
        location_code.admin_order_field = 'locationdetail__locationcode'
        location_code.short_description = 'Location Code'

class Locationdetail(models.Model):
    locationid = models.OneToOneField('Location',primary_key=True, db_column=u'LocationID')
    glcode = models.CharField(max_length=10, db_column=u'GLCode')
    locationcode = models.CharField(max_length=10, db_column=u'LocationCode')

admin.py

class LocationAdmin(admin.ModelAdmin):
    list_display = ["location_code", "name",]
    list_display_links = ('location_code','name',)

1 个答案:

答案 0 :(得分:0)

通过更改模型架构可能最有效。在我看来,您在Locationdetail类中执行的任何操作都不需要将信息存储在单独的模型中。如果您这样做是为了更容易地渲染表单,您可能希望合并这些模型并在视图中对任何逻辑进行排序。这将使您更好地控制分页和对象排序。